• Konrad Rzeszutek Wilk's avatar
    xen/pciback: For XEN_PCI_OP_disable_msi[|x] only disable if device has MSI(X) enabled. · 388a8005
    Konrad Rzeszutek Wilk authored
    commit 7cfb905b upstream.
    
    Otherwise just continue on, returning the same values as
    previously (return of 0, and op->result has the PIRQ value).
    
    This does not change the behavior of XEN_PCI_OP_disable_msi[|x].
    
    The pci_disable_msi or pci_disable_msix have the checks for
    msi_enabled or msix_enabled so they will error out immediately.
    
    However the guest can still call these operations and cause
    us to disable the 'ack_intr'. That means the backend IRQ handler
    for the legacy interrupt will not respond to interrupts anymore.
    
    This will lead to (if the device is causing an interrupt storm)
    for the Linux generic code to disable the interrupt line.
    
    Naturally this will only happen if the device in question
    is plugged in on the motherboard on shared level interrupt GSI.
    
    This is part of XSA-157
    Reviewed-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    388a8005
pciback_ops.c 10.9 KB