• G
    spapr_pci: map the MSI window in each PHB · 8c46f7ec
    Greg Kurz 提交于
    On sPAPR, virtio devices are connected to the PCI bus and use MSI-X.
    Commit cc943c36 has modified MSI-X
    so that writes are made using the bus master address space and follow
    the IOMMU path.
    
    Unfortunately, the IOMMU address space address space does not have an
    MSI window: the notification is silently dropped in unassigned_mem_write
    instead of reaching the guest... The most visible effect is that all
    virtio devices are non-functional on sPAPR since then. :(
    
    This patch does the following:
    1) map the MSI window into the IOMMU address space for each PHB
       - since each PHB instantiates its own IOMMU address space, we
         can safely map the window at a fixed address (SPAPR_PCI_MSI_WINDOW)
       - no real need to keep the MSI window setup in a separate function,
         the spapr_pci_msi_init() code moves to spapr_phb_realize().
    
    2) kill the global MSI window as it is not needed in the end
    Signed-off-by: NGreg Kurz <gkurz@linux.vnet.ibm.com>
    Signed-off-by: NAlexander Graf <agraf@suse.de>
    8c46f7ec
spapr_pci.c 30.9 KB