Thread (35 messages) 35 messages, 8 authors, 2021-03-29

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

From: Christoph Hellwig <hch@infradead.org>
Date: 2021-03-24 07:15:54
Also in: bpf, linux-arm-kernel, linux-hardening, linux-kbuild, linux-pci, lkml

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?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help