[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

a) Only ignore un-masked SMI delivery mode entries in

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


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.