On Wed, Apr 28, 2021 at 09:42:37PM -0400, Peter Geis wrote: > I have functional MSI support, some devices do not support MSIs > however and need legacy INTx. > I'd like to point out that the downstream patch does not actually work > on downstream. > The GFP_DMA32 flag is discarded by the slab allocator, this breaks MSI > allocation when the PCIe driver probes. > I hacked together my own version which works but would definitely not > be accepted for submission. Seriously folks. Never, ever use GFP_DMA or GFP_DMA32 in actual driver code. They fundamentally don't do what you want. Devices as a rule of thumb do care about DMA addressability, not CPU addressability, so they must use the DMA API to allocate the memory, and the dma mask to control addressability.