Re: [PATCH v3 03/17] mm: add generic __va_function and __pa_function macros

From: Christoph Hellwig
Date: Wed Mar 24 2021 - 03:15:53 EST


On Tue, Mar 23, 2021 at 01:39:32PM -0700, Sami Tolvanen wrote:
> With CONFIG_CFI_CLANG, the compiler replaces function addresses
> in instrumented C code with jump table addresses. This means that
> __pa_symbol(function) returns the physical address of the jump table
> entry instead of the actual function, which may not work as the jump
> table code will immediately jump to a virtual address that may not be
> mapped.
>
> To avoid this address space confusion, this change adds generic
> definitions for __va_function and __pa_function, which architectures
> that support CFI can override. The typical implementation of the
> __va_function macro would use inline assembly to take the function
> address, which avoids compiler instrumentation.

I think these helper are sensible, but shouldn't they have somewhat
less arcane names and proper documentation?