On Wed, Mar 30, 2022 at 11:35:26AM +0200, Alexander Lobakin wrote: > I'm not super familiar with the DMA internals, so adding Chris here, > maybe he'd like to comment, but anyway, the lower/arch layer must > not give the DMA addresses wider than the number of bits passed to > dma_set_mask() if that call returned 0. So, the basic assumption in the kernel is that 32-bit DMA is always supported, and dma_set_maks for that should not fail. If the system (or root port, internal interconnect) supports less than that we'll bounce buffer. But how and why would you hand out addresses larger than that? It really is not valid, but I can't even see how it could happen.