<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div><p style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Tested and passed on SPARC Enterprise T5220. </p>
<p style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; min-height: 15px;"><br></p>
<p style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Without this patch, the e1000e would use intx.</p>
<p style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; min-height: 15px;"><br></p>
<p style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Tested-by: Han Gao <<span style="color: rgb(21, 154, 255);">gaohan@iscas.ac.cn</span>> # on SPARC Enterprise T5220</p></div><div><br><blockquote type="cite"><div>On Feb 20, 2026, at 15:02, Nilay Shroff <nilay@linux.ibm.com> wrote:</div><br class="Apple-interchange-newline"><div><div>Recent changes replaced the use of no_64bit_msi with msi_addr_mask,<br>which is now expected to be initialized to DMA_BIT_MASK(64) during PCI<br>device setup. On SPARC systems, this initialization was inadvertently<br>missed for devices instantiated from device tree nodes, leaving<br>msi_addr_mask unset for OF-created pci_dev instances. As a result,<br>MSI address validation fails during probe, causing affected devices<br>to fail initialization.<br><br>Initialize pdev->msi_addr_mask to DMA_BIT_MASK(64) in<br>of_create_pci_dev() so that MSI address validation succeeds and PCI<br>device probing works as expected.<br><br>Fixes: 386ced19e9a3 ("PCI/MSI: Convert the boolean no_64bit_msi flag to a DMA address mask")<br>Signed-off-by: Nilay Shroff <nilay@linux.ibm.com><br>---<br> arch/sparc/kernel/pci.c | 7 +++++++<br> 1 file changed, 7 insertions(+)<br><br>diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c<br>index b290107170e9..a4815d544781 100644<br>--- a/arch/sparc/kernel/pci.c<br>+++ b/arch/sparc/kernel/pci.c<br>@@ -355,6 +355,13 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,<br> <span class="Apple-tab-span" style="white-space:pre">    </span>dev->error_state = pci_channel_io_normal;<br> <span class="Apple-tab-span" style="white-space:pre">     </span>dev->dma_mask = 0xffffffff;<br><br>+<span class="Apple-tab-span" style="white-space:pre"> </span>/*<br>+<span class="Apple-tab-span" style="white-space:pre">       </span> * Assume 64-bit addresses for MSI initially. Will be changed to 32-bit<br>+<span class="Apple-tab-span" style="white-space:pre">  </span> * if MSI (rather than MSI-X) capability does not have<br>+<span class="Apple-tab-span" style="white-space:pre">   </span> * PCI_MSI_FLAGS_64BIT. Can also be overridden by driver.<br>+<span class="Apple-tab-span" style="white-space:pre">        </span> */<br>+<span class="Apple-tab-span" style="white-space:pre">      </span>dev->msi_addr_mask = DMA_BIT_MASK(64);<br>+<br> <span class="Apple-tab-span" style="white-space:pre">     </span>if (of_node_name_eq(node, "pci")) {<br> <span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span>/* a PCI-PCI bridge */<br> <span class="Apple-tab-span" style="white-space:pre">   </span><span class="Apple-tab-span" style="white-space:pre">    </span>dev->hdr_type = PCI_HEADER_TYPE_BRIDGE;<br>-- <br>2.52.0<br><br><br></div></div></blockquote></div><br></body></html>