Re: [PATCH v2] dma-mapping: fix dma_addressing_limited if dma_range_map can't cover all system RAM
From: Robin Murphy
Date: Tue Oct 10 2023 - 05:40:50 EST
On 2023-10-10 08:48, Christoph Hellwig wrote:
dma_addressing_limited is called for every dma (direct) map, and this
new code is way to heavy for that. We'll need to cache the information
somehow.
But is it? That was my instinctive reaction as well, but AFAICS it is
only actually used by drivers in setup paths, either directly or via
dma_max_mapping_size(). The dma_capable() check which we *do* use for
every actual mapping still just checks whether the given physical
address exists in the range map. I believe the underlying problem here
is when dma_capable() say the mapping needs bouncing, but then it's too
big for that to succeed, since dma_max_mapping_size() gave the wrong
answer to start with.
Thanks,
Robin.