[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] x86: clear_IO_APIC_pin() and SMI delivery mode
clear_IO_APIC_pin() ignores entries that are set to delivery mode SMI. While this seems reasonable if the entry was unmasked, I consider it dubious for masked entries. In Linux, such behavior is benign since when the entry later is being used for some normal interrupt, the old setting is simply overwritten. In Xen, however, ioapic_guest_write() uses the vector field to determine the previous associated IRQ and possibly call remove_pin_at_irq() - this is where we got a report of a hypervisor crash - the BUG() in the first loop of this function triggers. Since I see two ways of fixing this (and perhaps there are more), before creating a patch I'd like to understand which of the approaches seems more reasonable (or whether both should be combined): a) Only ignore un-masked SMI delivery mode entries in clear_IO_APIC_pin(). b) Ignore the vector information in ioapic_guest_write() for all delivery modes (at least in old_rte, new_rte is currently not allowed to have anything but fixed or lowest priority) that don't allow a vector. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |