mirror_ubuntu-kernels/drivers/pci/controller
Ajay Agarwal f3a296405b
PCI: dwc: Strengthen the MSI address allocation logic
There can be platforms that do not use/have 32-bit DMA addresses.
The current implementation of 32-bit IOVA allocation can fail for
such platforms, eventually leading to the probe failure.

Try to allocate a 32-bit msi_data. If this allocation fails,
attempt a 64-bit address allocation. Please note that if the
64-bit MSI address is allocated, then the EPs supporting 32-bit
MSI address only will not work.

Link: https://lore.kernel.org/linux-pci/20240221153840.1789979-1-ajayagarwal@google.com
Tested-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Ajay Agarwal <ajayagarwal@google.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Reviewed-by: Will McVicker <willmcvicker@google.com>
2024-03-10 18:08:04 +00:00
..
cadence Merge branch 'pci/irq-clean-up' 2024-01-15 12:10:40 -06:00
dwc PCI: dwc: Strengthen the MSI address allocation logic 2024-03-10 18:08:04 +00:00
mobiveil PCI: Use PCI_HEADER_TYPE_* instead of literals 2023-10-03 11:55:59 -05:00
Kconfig PCI: xilinx-xdma: Add Xilinx XDMA Root Port driver 2023-10-26 15:02:02 +00:00
Makefile PCI: xilinx-xdma: Add Xilinx XDMA Root Port driver 2023-10-26 15:02:02 +00:00
pci-aardvark.c PCI: aardvark: Convert to platform remove callback returning void 2023-06-24 14:10:09 +00:00
pci-ftpci100.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pci-host-common.c PCI: host-generic: Convert to platform remove callback returning void 2023-11-20 15:53:14 -06:00
pci-host-generic.c PCI: host-generic: Convert to platform remove callback returning void 2023-11-20 15:53:14 -06:00
pci-hyperv-intf.c
pci-hyperv.c x86/apic: Drop apic::delivery_mode 2023-11-21 16:58:54 +01:00
pci-ixp4xx.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pci-loongson.c PCI: loongson: Limit MRRS to 256 2023-12-08 10:48:37 -06:00
pci-mvebu.c PCI: mvebu: Use FIELD_PREP() with Link Width 2023-10-10 15:00:52 -05:00
pci-rcar-gen2.c PCI: rcar-gen2: Use devm_platform_get_and_ioremap_resource() 2023-07-13 18:12:35 +00:00
pci-tegra.c PCI: tegra: Convert to platform remove callback returning void 2023-06-24 14:14:02 +00:00
pci-thunder-ecam.c PCI: thunder: Drop error data fabrication when config read fails 2021-11-18 13:39:32 -06:00
pci-thunder-pem.c PCI: thunder: Drop error data fabrication when config read fails 2021-11-18 13:39:32 -06:00
pci-v3-semi.c Merge branch 'pci/misc' 2023-08-29 11:03:57 -05:00
pci-versatile.c PCI: Remove MODULE_LICENSE so boolean drivers don't look like modules 2023-02-17 08:47:58 -06:00
pci-xgene-msi.c PCI: xgene-msi: Use devm_platform_get_and_ioremap_resource() 2023-07-13 18:12:36 +00:00
pci-xgene.c PCI: xgene: Do PCI error check on own line & keep return value 2023-10-10 16:40:18 -05:00
pcie-altera-msi.c PCI: altera-msi: Convert to platform remove callback returning void 2023-06-24 14:10:47 +00:00
pcie-altera.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pcie-apple.c Merge branch 'pci/misc' 2023-08-29 11:03:57 -05:00
pcie-brcmstb.c PCI: brcmstb: Configure HW CLKREQ# mode appropriate for downstream device 2024-01-11 11:53:00 +00:00
pcie-hisi-error.c PCI: hisi-error: Convert to platform remove callback returning void 2023-06-24 14:12:13 +00:00
pcie-iproc-bcma.c PCI: Add defines for normal and subtractive PCI bridges 2022-02-17 15:29:35 -06:00
pcie-iproc-msi.c PCI: iproc: Use of_property_read_bool() for boolean properties 2023-07-13 18:09:24 +00:00
pcie-iproc-platform.c PCI: iproc: Fix -Wvoid-pointer-to-enum-cast warning 2024-01-06 08:06:50 +00:00
pcie-iproc.c PCI: Use PCI_HEADER_TYPE_* instead of literals 2023-10-03 11:55:59 -05:00
pcie-iproc.h PCI: iproc: Convert to platform remove callback returning void 2023-06-24 14:12:36 +00:00
pcie-mediatek-gen3.c PCI: mediatek-gen3: Fix translation window size calculation 2024-01-09 16:42:22 -06:00
pcie-mediatek.c PCI: mediatek: Clear interrupt status before dispatching handler 2024-01-09 16:41:23 -06:00
pcie-microchip-host.c Merge branch 'pci/controller/remove-void-cast' 2023-08-29 11:03:56 -05:00
pcie-mt7621.c PCI: mt7621: Convert to platform remove callback returning void 2023-06-24 14:13:16 +00:00
pcie-rcar-ep.c PCI: endpoint: Drop PCI_EPC_IRQ_XXX definitions 2023-12-18 11:55:56 +01:00
pcie-rcar-host.c PCI: rcar-host: Add support for optional regulators 2023-12-14 19:10:16 +00:00
pcie-rcar.c
pcie-rcar.h PCI: rcar: Avoid defines prefixed with CONFIG 2023-03-10 13:34:27 +01:00
pcie-rockchip-ep.c PCI: rockchip-ep: Use INTX instead of legacy 2023-12-19 09:36:42 +01:00
pcie-rockchip-host.c PCI: rockchip-host: Rename rockchip_pcie_legacy_int_handler() 2023-12-19 09:36:42 +01:00
pcie-rockchip.c PCI: Explicitly include correct DT includes 2023-07-18 14:33:17 -05:00
pcie-rockchip.h PCI: rockchip: Use 64-bit mask on MSI 64-bit PCI address 2023-07-13 18:25:44 +00:00
pcie-xilinx-common.h PCI: xilinx-xdma: Add Xilinx XDMA Root Port driver 2023-10-26 15:02:02 +00:00
pcie-xilinx-cpm.c PCI: xilinx-cpm: Move IRQ definitions to a common header 2023-10-26 14:10:42 +00:00
pcie-xilinx-dma-pl.c PCI: xilinx-xdma: Fix error code in xilinx_pl_dma_pcie_init_irq_domain() 2024-01-08 17:44:45 +00:00
pcie-xilinx-nwl.c PCI: xilinx-nwl: Use INTX instead of legacy 2023-12-19 09:36:42 +01:00
pcie-xilinx.c PCI: xilinx: Rename xilinx_pcie_port to xilinx_pcie 2022-01-03 15:05:28 -06:00
vmd.c pci-v6.8-changes 2024-01-17 16:23:17 -08:00