[PATCH 0/4] arm: Privileged no-access for LPAE

Catalin Marinas catalin.marinas at arm.com
Wed Sep 23 07:24:06 PDT 2015


Hi,

This is the first attempt to add support for privileged no-access on
LPAE-enabled kernels by disabling TTBR0 page table walks. The first
three patches are pretty much refactoring/clean-up without any
functional change. The last patch implements the actual PAN using TTBR0
disabling. Its description also contains the details of how this works.

The patches can be found here:

git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64 arm32-pan

Tested in different configurations (with and without LPAE, all
VMSPLIT_*, loadable modules) but only under KVM on Juno (ARMv8).

Thanks.


Catalin Marinas (4):
  arm: kvm: Move TTBCR_* definitions from kvm_arm.h into
    pgtable-3level-hwdef.h
  arm: Move asm statements accessing TTBCR into dedicated functions
  arm: Reduce the number of #ifdef CONFIG_CPU_SW_DOMAIN_PAN
  arm: Implement privileged no-access using TTBR0 page table walks
    disabling

 arch/arm/Kconfig                            | 22 ++++++++--
 arch/arm/include/asm/assembler.h            | 68 +++++++++++++++++++++++++----
 arch/arm/include/asm/kvm_arm.h              | 17 +-------
 arch/arm/include/asm/pgtable-3level-hwdef.h | 26 +++++++++++
 arch/arm/include/asm/proc-fns.h             | 12 +++++
 arch/arm/include/asm/uaccess.h              | 53 +++++++++++++++++++---
 arch/arm/kvm/init.S                         |  2 +-
 arch/arm/lib/csumpartialcopyuser.S          | 20 ++++++++-
 arch/arm/mm/fault.c                         | 10 +++++
 arch/arm/mm/mmu.c                           |  7 ++-
 10 files changed, 199 insertions(+), 38 deletions(-)




More information about the linux-arm-kernel mailing list