[PATCH 2/2] arm64: mm: use XN table mapping attributes for the linear region

Catalin Marinas catalin.marinas at arm.com
Fri Mar 5 19:06:00 GMT 2021


On Thu, Mar 04, 2021 at 06:11:45PM +0100, Ard Biesheuvel wrote:
> The way the arm64 kernel virtual address space is constructed guarantees
> that swapper PGD entries are never shared between the linear region on
> the one hand, and the vmalloc region on the other, which is where all
> kernel text, module text and BPF text mappings reside.
> 
> This means that mappings in the linear region (which never require
> executable permissions) never share any table entries at any level with
> mappings that do require executable permissions, and so we can set the
> table-level PXN/UXN attributes for all table entries that are created
> while setting up mappings in the linear region. Since swapper's PGD
> level page table is mapped r/o itself, this adds another layer of
> robustness to the way the kernel manages its own page tables.

In ARMv8.1 the architecture added the possibility of disabling the
hierarchical page table permissions (FEAT_HPDS) so that we can use these
bits for software.

Is there any big advantage to using the hierarchical permissions vs
some sanity check in set_pte() for example?

-- 
Catalin



More information about the linux-arm-kernel mailing list