MAX_DMA_ADDRESS overflow with non-zero arm_dma_zone_size and VMSPLIT_3G

Linus Walleij linus.walleij at linaro.org
Wed Mar 23 08:02:05 PDT 2022


On Mon, Mar 21, 2022 at 4:46 AM Florian Fainelli <f.fainelli at gmail.com> wrote:

> All of the virt_to_phys() and related functions either take a pointer
> size argument (const volatile void *) or an unsigned long argument and
> these are virtual addresses so unable to go over 32-bit anyway.

Oh I ran into that too, in some different context that I since forgot.
A macro that works the same on pointers and unsigned long but with
slightly different semantics :P

I don't know what is the proper thing to do here. Let's involve Arnd
and Ard and Geert!

> Since MAX_DMA_ADDRESS is intended to be "This is the maximum virtual
> address which can be DMA'd from.", should we make sure that we clamp it
> below 32-bit in case it overflows?

Hmmmm.... I don't know what that would mean in practice?

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list