Re: [PATCH v4 1/4] PCI/MSI: Conservatively generalize no_64bit_msi into msi_addr_mask
Bjorn Helgaas <[email protected]>
| Newsgroups | dev.linux.lists.sophgo,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kernel.vger.linux-sound,org.kernel.vger.netdev,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <20260227164919.GA3897300@bhelgaas> |
On Fri, Feb 27, 2026 at 01:25:03PM +0800, Vivian Wang wrote: > On 2/27/26 02:25, Mark Bloch wrote: > > On 29/01/2026 3:56, Vivian Wang wrote: > >> Some PCI devices have PCI_MSI_FLAGS_64BIT in the MSI capability, but > >> implement less than 64 address bits. This breaks on platforms where such > >> a device is assigned an MSI address higher than what's reachable. > >> > >> Currently, the no_64bit_msi bit is set for these devices, meaning that > >> only 32-bit MSI addresses are allowed for them. However, on some > >> platforms the MSI doorbell address is above the 32-bit limit but within > >> the addressable range of the device. > >> > >> As a first step to enabling MSI on those combinations of devices and > >> platforms, conservatively generalize the single-bit flag no_64bit_msi > >> into msi_addr_mask. (The name msi_addr_mask is chosen to avoid confusion > >> with msi_mask.) > >> > >> The translation is essentially: > >> > >> - no_64bit_msi = 1 -> msi_addr_mask = DMA_BIT_MASK(32) > >> - no_64bit_msi = 0 -> msi_addr_mask = DMA_BIT_MASK(64) > >> - if (no_64bit_msi) -> if (msi_addr_mask < DMA_BIT_MASK(64)) > >> > > Hey Vivian, > > > > We are seeing issues while reloading mlx5 on a PPC64 platform. > > Mea culpa. There's a fix on the list [1] since last Friday. I'm not sure > why it hasn't moved yet, but please take a look. > > [1]: https://lore.kernel.org/all/[email protected]/ We needed testing on powerpc and sparc, which has now been done, thanks to Han Gao (SPARC Enterprise T5220), Nathaniel Roach (SPARC T5-2), and Venkat Rao Bagalkote (IBM Power System LPAR (pseries)). It would be ideal to have acks from the powerpc and sparc maintainers, so I just solicited those. Thomas merged 386ced19e9a3 ("PCI/MSI: Convert the boolean no_64bit_msi flag to a DMA address mask"), and could merge the fixes. Otherwise I can merge via PCI. Bjorn