[PATCH v3 1/4] PCI/MSI: Conservatively generalize no_64bit_msi into msi_addr_mask

Thomas Gleixner tglx at kernel.org
Tue Jan 27 01:25:46 PST 2026


On Fri, Jan 23 2026 at 14:07, 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, we deal with this with a single no_64bit_msi flag, and

we don't deal with anything. The code has a single bit
limitation. Please use passive voice as documented.

> (notably on powerpc) forces 32-bit MSI address for these devices.

this is not a valid sentence.

> However, on some platforms the MSI doorbell address is above 32-bit but
> within device ability.
>
> 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))
>
> Since no values other than DMA_BIT_MASK(32) and DMA_BIT_MASK(64) is

s/is/are/

> used, no functional change is intended. Future patches that make use of
> intermediate values of msi_addr_mask will follow, allowing devices that
> cannot use full 64-bit addresses for MSI to work on platforms with MSI
> doorbell above 32-bit address space.
>
> Acked-by: Takashi Iwai <tiwai at suse.de>
> Signed-off-by: Vivian Wang <wangruikang at iscas.ac.cn>

Other than those nits:

Reviewed-by: Thomas Gleixner <tglx at kernel.org>



More information about the linux-riscv mailing list