On Tuesday 22 July 2008 20:13:53 Ben-Ami Yassour wrote: > > -int kvm_pic_read_irq(struct kvm_pic *s) > +int kvm_pic_read_irq(struct kvm *kvm) > { > int irq, irq2, intno; > + struct kvm_pic *s = pic_irqchip(kvm); > > irq = pic_get_irq(&s->pics[0]); > if (irq >= 0) { > @@ -186,6 +187,8 @@ int kvm_pic_read_irq(struct kvm_pic *s) > irq = 7; > intno = s->pics[0].irq_base + irq; > } > + kvm_notify_acked_irq(kvm, irq); > + > pic_update_irq(s); > > return intno;
One coding style suggestion, struct kvm_pic has *irq_request_opaque which is struct kvm indeed. How about contain kvm in kvm_pic explicitly? (seems cleaner, though needs more modification). Another thing is about host share IRQ: Do we want follow the straight forward way to add it? That's it, return IRQ_HANDLED from irq handler and wait for EOI of guest? I found it's not easy to provide support for MSI without shared IRQ support. We don't know when guest want to enable MSI or it decided to shared IRQ, maybe we can intercept the unmask of IOAPIC to know that, but it's a little tricky. -- regards Yang, Sheng -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html