[PATCH 0/2] arm64: Further fixes to the linear address checking

Catalin Marinas catalin.marinas at arm.com
Mon Feb 1 14:06:32 EST 2021

There some history to virt_addr_valid() that goes back to 5.4. It seems
to have been ok prior to this kernel, however, the VA reshuffling in
commit 14c127c957c1 ("arm64: mm: Flip kernel VA space") broke it. The
subsequent fix 68dd8ef32162 ("arm64: memory: Fix virt_addr_valid() using
__is_lm_address()") partially addressed it but it left virt_addr_valid()
returning true for user addresses (or NULL).

The recent commit 519ea6f1c82f ("arm64: Fix kernel address detection of
__is_lm_address()") fixed the NULL checking but broke the
virt_addr_valid() macro for tagged addresses.

The first patch attempts to fix virt_addr_valid() macro for tagged
addresses. The second patch replaces the bitwise operations with a
subtract. The resulting image is slightly smaller.

Catalin Marinas (2):
  arm64: Do not pass tagged addresses to __is_lm_address()
  arm64: Use simpler arithmetics for the linear map macros

 arch/arm64/include/asm/memory.h | 6 +++---
 arch/arm64/mm/physaddr.c        | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

More information about the linux-arm-kernel mailing list