2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/pci/controller/dwc
Niklas Cassel 810276362b PCI: dwc: ep: Correct PBA offset in .set_msix() callback
While dw_pcie_ep_set_msix() writes the Table Size field correctly (N-1),
the calculation of the PBA offset is wrong because it calculates space for
(N-1) entries instead of N.

This results in the following QEMU error when using PCI passthrough on a
device which relies on the PCI endpoint subsystem:

  failed to add PCI capability 0x11[0x50]@0xb0: table & pba overlap, or they don't fit in BARs, or don't align

Fix the calculation of PBA offset in the MSI-X capability.

[bhelgaas: more specific subject and commit log]

Fixes: 83153d9f36 ("PCI: endpoint: Fix ->set_msix() to take BIR and offset as arguments")
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20250514074313.283156-9-cassel@kernel.org
2025-05-28 16:47:56 -05:00
..
Kconfig Merge branch 'pci/controller/dwc' 2025-03-27 13:14:49 -05:00
Makefile Merge branch 'pci/controller/dwc' 2025-03-27 13:14:49 -05:00
pci-dra7xx.c PCI: dra7xx: Use syscon_regmap_lookup_by_phandle_args 2025-01-16 14:38:53 -06:00
pci-exynos.c PCI: exynos: Switch to devm_clk_bulk_get_all_enabled() 2024-12-23 12:53:52 -08:00
pci-imx6.c Merge branch 'pci/controller/dwc-cpu-addr-fixup' 2025-03-27 13:14:59 -05:00
pci-keystone.c PCI: keystone: Specify correct alignment requirement 2025-03-08 14:47:25 +00:00
pci-layerscape-ep.c PCI: layerscape-ep: Use the generic dw_pcie_ep_linkdown() API to handle Link Down event 2024-07-09 18:21:11 -05:00
pci-layerscape.c PCI: layerscape: Fix arg_count to syscon_regmap_lookup_by_phandle_args() 2025-03-27 13:11:14 -05:00
pci-meson.c PCI: dwc: Remove unused of_gpio.h inclusion 2024-05-28 11:15:08 -05:00
pcie-al.c PCI: al: Check IORESOURCE_BUS existence during probe 2024-05-28 11:14:24 -05:00
pcie-amd-mdb.c PCI: amd-mdb: Add AMD MDB Root Port driver 2025-03-23 05:50:59 +00:00
pcie-armada8k.c PCI: dwc: Drop host prefix from struct dw_pcie_host_ops members 2024-01-06 07:51:08 +00:00
pcie-artpec6.c PCI: artpec6: Implement dw_pcie_ep operation get_features 2024-12-18 21:51:47 +00:00
pcie-bt1.c PCI: controller: Switch back to struct platform_driver::remove() 2024-10-03 16:44:49 -05:00
pcie-designware-debugfs.c PCI: dwc: Add debugfs property to provide LTSSM status of the PCIe link 2025-03-06 08:55:54 +00:00
pcie-designware-ep.c PCI: dwc: ep: Correct PBA offset in .set_msix() callback 2025-05-28 16:47:56 -05:00
pcie-designware-host.c Merge branch 'pci/controller/dwc-cpu-addr-fixup' 2025-03-27 13:14:59 -05:00
pcie-designware-plat.c PCI: dwc: ep: Remove dw_pcie_ep_init_notify() wrapper 2024-07-09 18:20:21 -05:00
pcie-designware.c Merge branch 'pci/controller/dwc-cpu-addr-fixup' 2025-03-27 13:14:59 -05:00
pcie-designware.h Merge branch 'pci/controller/dwc-cpu-addr-fixup' 2025-03-27 13:14:59 -05:00
pcie-dw-rockchip.c Merge branch 'pci/controller/dwc' 2025-03-27 13:14:49 -05:00
pcie-fu740.c PCI: dwc: Drop host prefix from struct dw_pcie_host_ops members 2024-01-06 07:51:08 +00:00
pcie-hisi.c PCI: hisi: Avoid invalid address space conversions 2022-01-03 15:05:28 -06:00
pcie-histb.c PCI: histb: Fix an error handling path in histb_pcie_probe() 2025-03-16 11:49:19 +00:00
pcie-intel-gw.c PCI: intel-gw: Remove intel_pcie_cpu_addr() 2025-03-24 14:58:35 -05:00
pcie-keembay.c PCI: dwc: ep: Remove dw_pcie_ep_init_notify() wrapper 2024-07-09 18:20:21 -05:00
pcie-kirin.c PCI: kirin: Tidy up _probe() related function with dev_err_probe() 2025-03-06 09:30:15 +00:00
pcie-qcom-common.c PCI: qcom: Add RX lane margining settings for 16.0 GT/s 2024-09-13 14:44:59 +00:00
pcie-qcom-common.h PCI: qcom: Add RX lane margining settings for 16.0 GT/s 2024-09-13 14:44:59 +00:00
pcie-qcom-ep.c Merge branch 'pci/misc' 2025-03-27 13:15:05 -05:00
pcie-qcom.c PCI: Fix typos 2025-03-08 15:08:45 -06:00
pcie-rcar-gen4.c PCI: controller: Switch back to struct platform_driver::remove() 2024-10-03 16:44:49 -05:00
pcie-spear13xx.c PCI: dwc: Rename 'dw_pcie::link_gen' to 'dw_pcie::max_link_speed' 2024-09-13 14:44:43 +00:00
pcie-tegra194-acpi.c PCI: dwc: Simplify in/outbound iATU setup methods 2022-08-01 15:15:09 -05:00
pcie-tegra194.c Merge branch 'pci/controller/tegra194' 2024-11-25 13:41:00 -06:00
pcie-uniphier-ep.c PCI: dwc: ep: Remove dw_pcie_ep_init_notify() wrapper 2024-07-09 18:20:21 -05:00
pcie-uniphier.c Merge branch 'pci/irq-clean-up' 2024-01-15 12:10:40 -06:00
pcie-visconti.c PCI: dwc: Drop host prefix from struct dw_pcie_host_ops members 2024-01-06 07:51:08 +00:00