> > @@ -220,6 +232,11 @@ static void piix3_set_irq(qemu_irq *pic, int > > irq_num, int level) > > { > > int i, pic_irq, pic_level; > > > > +#if defined(KVM_CAP_IRQCHIP) && defined(TARGET_IA64) > > + if(kvm_enabled()) > > + kvm_set_irq(irq_num, level); > > + return; > > +#endif > > pci_irq_levels[irq_num] = level; > > Why the current hook into i8259_set_irq does not work for IA64? if (pic_irq < 16) { /* The pic level is the logical OR of all the PCI irqs mapped to it */ Ok, but still, how can you share interrupts by directly changing the level without checking for individual devices first. > I think this breaks interrupt sharing, because the logic to detect if > all devices sharing the line are low or high is in i8259_set_irq, and s/i8259_set_irq/piix3_set_irq/ > you simply skip that. -- To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html