On Fri, Sep 09, 2022 at 02:47:19PM +0100, Robin Murphy wrote:
On 2022-09-09 14:29, Christoph Hellwig wrote:
On Thu, Aug 25, 2022 at 06:50:25PM +0000, Will McVicker wrote:
Since not all devices require a 32-bit MSI address, add support to the
PCIe host driver to allow setting the DMA mask to 64-bits if the 32-bit
allocation fails. This allows kernels to disable ZONE_DMA32 and bounce
buffering (swiotlb) without risking not being able to get a 32-bit address
during DMA allocation.
Umm. You can't just disable ZONE_DMA32. Linux absolutely requires a
32-bit dma mask to work, it is in fact the implicit default.
Eh, it's behind CONFIG_EXPERT, which makes it enough of a "I think I know
what I'm doing and accept responsibility for picking up the pieces if it
breaks" thing.
Seem like indeed on arm64 there is a way to disable it. The x86 model
is to just select it unconditionally, which I think is the right way
if we don't want to get into completely random failures.