• A
    spapr_pci: fix MSI limit · 28668b5f
    Alexey Kardashevskiy 提交于
    At the moment XICS does not support interrupts reuse so sPAPR PHB
    implements this. sPAPRPHBState holds array of 32 spapr_pci_msi to
    describe PCI config address, first MSI and number of MSIs. Once
    allocated for a device, QEMU tries reusing this config until the number
    of MSIs changes.
    
    Existing SPAPR guests call ibm,change-msi in a loop until the handler
    returns the requested number of vectors.
    
    Recently introduced check for the maximum number of MSI/MSIX vectors
    supported by a device only works for a device which is new for PHB's
    MSI cache. If it is already there, the check is not performed which
    leads to new IRQ block allocation. This happens during PCI hotplug
    even when the user hot plug the same device which he just hot unplugged.
    
    This moves the check earlier.
    Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: NAlexander Graf <agraf@suse.de>
    28668b5f
spapr_pci.c 28.1 KB