From: Nilay Shroff <nilay@linux.ibm.com>
To: linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org,
sparclinux@vger.kernel.org
Cc: wangruikang@iscas.ac.cn, tglx@kernel.org, maddy@linux.ibm.com,
mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org,
gjoyce@ibm.com, helgaas@kernel.org, davem@davemloft.net,
andreas@gaisler.com, Nilay Shroff <nilay@linux.ibm.com>
Subject: [PATCHv2 1/2] powerpc/pci: Initialize msi_addr_mask for OF-created PCI devices
Date: Fri, 20 Feb 2026 12:32:27 +0530 [thread overview]
Message-ID: <20260220070239.1693303-2-nilay@linux.ibm.com> (raw)
In-Reply-To: <20260220070239.1693303-1-nilay@linux.ibm.com>
Recent changes replaced the use of no_64bit_msi with msi_addr_mask.
As a result, msi_addr_mask is now expected to be initialized to
DMA_BIT_MASK(64) when a pci_dev is set up. However, this initialization
was missed on powerpc due to differences in the device initialization
path compared to other (x86) architecture. Due to this, now PCI device
probe method fails on powerpc system.
On powerpc systems, struct pci_dev instances are created from device
tree nodes via of_create_pci_dev(). Because msi_addr_mask was not
initialized there, it remained zero. Later, during MSI setup,
msi_verify_entries() validates the programmed MSI address against
pdev->msi_addr_mask. Since the mask was not set correctly, the
validation fails, causing PCI driver probe failures for devices on
powerpc systems.
Initialize pdev->msi_addr_mask to DMA_BIT_MASK(64) in
of_create_pci_dev() so that MSI address validation succeeds and device
probe works as expected.
Fixes: 386ced19e9a3 ("PCI/MSI: Convert the boolean no_64bit_msi flag to a DMA address mask")
Signed-off-by: Nilay Shroff <nilay@linux.ibm.com>
---
arch/powerpc/kernel/pci_of_scan.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c
index 756043dd06e9..fb9fbf0d1796 100644
--- a/arch/powerpc/kernel/pci_of_scan.c
+++ b/arch/powerpc/kernel/pci_of_scan.c
@@ -212,6 +212,13 @@ struct pci_dev *of_create_pci_dev(struct device_node *node,
dev->error_state = pci_channel_io_normal;
dev->dma_mask = 0xffffffff;
+ /*
+ * Assume 64-bit addresses for MSI initially. Will be changed to 32-bit
+ * if MSI (rather than MSI-X) capability does not have
+ * PCI_MSI_FLAGS_64BIT. Can also be overridden by driver.
+ */
+ dev->msi_addr_mask = DMA_BIT_MASK(64);
+
/* Early fixups, before probing the BARs */
pci_fixup_device(pci_fixup_early, dev);
--
2.52.0
next prev parent reply other threads:[~2026-02-20 7:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-20 7:02 [PATCHv2 0/2] pci: fix msi_addr_mask on powerpc and sparc systems Nilay Shroff
2026-02-20 7:02 ` Nilay Shroff [this message]
2026-02-22 10:46 ` [PATCHv2 1/2] powerpc/pci: Initialize msi_addr_mask for OF-created PCI devices Venkat
2026-03-01 6:59 ` Nam Cao
2026-02-20 7:02 ` [PATCHv2 2/2] sparc/pci: " Nilay Shroff
2026-02-21 16:36 ` Han Gao
2026-02-22 6:01 ` Nathaniel Roach
2026-02-20 10:14 ` [PATCHv2 0/2] pci: fix msi_addr_mask on powerpc and sparc systems Vivian Wang
2026-02-20 13:15 ` John Paul Adrian Glaubitz
2026-02-27 16:44 ` Bjorn Helgaas
2026-03-03 4:29 ` Madhavan Srinivasan
2026-03-03 16:30 ` Bjorn Helgaas
2026-03-02 23:07 ` Bjorn Helgaas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260220070239.1693303-2-nilay@linux.ibm.com \
--to=nilay@linux.ibm.com \
--cc=andreas@gaisler.com \
--cc=chleroy@kernel.org \
--cc=davem@davemloft.net \
--cc=gjoyce@ibm.com \
--cc=helgaas@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@kernel.org \
--cc=wangruikang@iscas.ac.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox