• Jason Wang's avatar
    virtio_pci: harden MSI-X interrupts · 9e35276a
    Jason Wang authored
    We used to synchronize pending MSI-X irq handlers via
    synchronize_irq(), this may not work for the untrusted device which
    may keep sending interrupts after reset which may lead unexpected
    results. Similarly, we should not enable MSI-X interrupt until the
    device is ready. So this patch fixes those two issues by:
    
    1) switching to use disable_irq() to prevent the virtio interrupt
       handlers to be called after the device is reset.
    2) using IRQF_NO_AUTOEN and enable the MSI-X irq during .ready()
    
    This can make sure the virtio interrupt handler won't be called before
    virtio_device_ready() and after reset.
    
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
    Link: https://lore.kernel.org/r/20211019070152.8236-5-jasowang@redhat.comSigned-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    9e35276a
virtio_pci_modern.c 11.6 KB