• Keith Busch's avatar
    x86/PCI: VMD: Synchronize with RCU freeing MSI IRQ descs · ee6ee49f
    Keith Busch authored
    Fix a potential race when disabling MSI/MSI-X on a VMD domain device.  If
    the VMD interrupt service is running, it may see a disabled IRQ.  We can
    synchronize RCU just before freeing the MSI descriptor.  This is safe since
    the irq_desc lock isn't held, and the descriptor is valid even though it is
    disabled.  After vmd_msi_free(), though, the handler is reinitialized to
    handle_bad_irq(), so we can't let the VMD ISR's list iteration see the
    disabled IRQ after this.
    Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Acked-by Jon Derrick: <jonathan.derrick@intel.com>
    ee6ee49f
vmd.c 19.7 KB