[PATCHv2 0/2] pci: fix msi_addr_mask on powerpc and sparc systems

Nilay Shroff
2026-02-20T07:03:34Z

Hi,

Recent changes [1] which replaced pci_dev::no_64bit_msi with pci_dev::
msi_addr_mask inadvertently missed to initialize the pci_dev::msi_addr_mask
to the DMA_BIT_MASK(64) on powerpc platform. Due to this, later the
validation the programmed MSI address against the msi_addr_mask fails.
This causes pci device probe method failures on powerpc platform. We also
realized that similar issue could potentially happen on sparc system as
well. So this series initializes pci_dev::msi_addr_mask to DMA_BIT_MASK(64)
when pci_dev is instantiated for both powerpc and sparc platforms.

The first patch in the series fixes this on powerpc platform. The second
patch fixes this issue on sparc platform. Please note that as I don't have
access to the sparc platform, this patch was only compile tested on the
sparc system. Anyone from the community is welcome to test it who has
access to the sparc machine.

[1] https://lore.kernel.org/all/20260129-pci-msi-addr-mask-v4-0-70da998f2750@iscas.ac.cn/

Changes since v1:
- Initialize the pci_dev:msi_addr_mask on sparc platform (Vivian Wang)
- Some minor cosmetic fixes (Bjorn Helgaas)

Nilay Shroff (2):
powerpc/pci: Initialize msi_addr_mask for OF-created PCI devices
sparc/pci: Initialize msi_addr_mask for OF-created PCI devices

arch/powerpc/kernel/pci_of_scan.c | 7 +++++++
arch/sparc/kernel/pci.c | 7 +++++++
2 files changed, 14 insertions(+)

--
2.52.0