[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1552292207.git.christophe.leroy@c-s.fr>
Date: Mon, 11 Mar 2019 08:30:26 +0000 (UTC)
From: Christophe Leroy <christophe.leroy@....fr>
To: Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Michael Ellerman <mpe@...erman.id.au>
Cc: linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Subject: [PATCH v2 00/10] Kernel Userspace protection for PPC32
This series intend to implement Kernel Userspace protection for PPC32.
It comes on top of the v5 series for Radix.
The first patch of the series is a fix which is expected to be merged soon.
The second patch is a squash of Russel/Michael series for Radix.
Tested on:
- 8xx
- 83xx (ie book3s32 without hash table)
- QEMU MAC99 (ie book3s32 with hash table)
v2:
- Rebased/adapted the series on top of the v5 series for Radix.
- Reordered the patches so that we first have the ones common to 32 bits, then the 8xx, then book3s32
- Fixed lockup on bad data write (unauthorised write to user) on book3s32 hash.
- Added KUEP for book3s32
Christophe Leroy (9):
powerpc/6xx: fix setup and use of SPRN_SPRG_PGDIR for hash32
powerpc/32: Remove MSR_PR test when returning from syscall
powerpc/32: Prepare for Kernel Userspace Access Protection
powerpc/8xx: Only define APG0 and APG1
powerpc/8xx: Add Kernel Userspace Execution Prevention
powerpc/8xx: Add Kernel Userspace Access Protection
powerpc/32s: Implement Kernel Userspace Execution Prevention.
powerpc/32s: Prepare Kernel Userspace Access Protection
powerpc/32s: Implement Kernel Userspace Access Protection
Russell Currey (1):
powerpc/mm: Detect bad KUAP faults (Squash of v5 series)
Documentation/admin-guide/kernel-parameters.txt | 4 +-
arch/powerpc/include/asm/book3s/32/kup.h | 149 ++++++++++++++++++++++++
arch/powerpc/include/asm/book3s/32/mmu-hash.h | 5 +
arch/powerpc/include/asm/book3s/64/kup-radix.h | 119 +++++++++++++++++++
arch/powerpc/include/asm/exception-64s.h | 2 +
arch/powerpc/include/asm/feature-fixups.h | 3 +
arch/powerpc/include/asm/futex.h | 4 +
arch/powerpc/include/asm/kup.h | 65 +++++++++++
arch/powerpc/include/asm/mmu.h | 10 +-
arch/powerpc/include/asm/nohash/32/kup-8xx.h | 68 +++++++++++
arch/powerpc/include/asm/nohash/32/mmu-8xx.h | 26 ++++-
arch/powerpc/include/asm/processor.h | 3 +
arch/powerpc/include/asm/ptrace.h | 11 +-
arch/powerpc/include/asm/uaccess.h | 38 ++++--
arch/powerpc/kernel/asm-offsets.c | 7 ++
arch/powerpc/kernel/cpu_setup_6xx.S | 3 -
arch/powerpc/kernel/entry_32.S | 28 +++--
arch/powerpc/kernel/entry_64.S | 27 ++++-
arch/powerpc/kernel/exceptions-64s.S | 3 +
arch/powerpc/kernel/head_32.S | 52 +++++++--
arch/powerpc/kernel/idle_book3s.S | 39 +++++++
arch/powerpc/kernel/setup_64.c | 10 ++
arch/powerpc/lib/checksum_wrappers.c | 4 +
arch/powerpc/lib/code-patching.c | 4 +-
arch/powerpc/mm/8xx_mmu.c | 24 ++++
arch/powerpc/mm/fault.c | 49 ++++++--
arch/powerpc/mm/hash_low_32.S | 14 +--
arch/powerpc/mm/init-common.c | 26 +++++
arch/powerpc/mm/init_32.c | 3 +
arch/powerpc/mm/pgtable-radix.c | 30 ++++-
arch/powerpc/mm/pkeys.c | 1 +
arch/powerpc/mm/ppc_mmu_32.c | 23 ++++
arch/powerpc/platforms/Kconfig.cputype | 37 ++++++
33 files changed, 826 insertions(+), 65 deletions(-)
create mode 100644 arch/powerpc/include/asm/book3s/32/kup.h
create mode 100644 arch/powerpc/include/asm/book3s/64/kup-radix.h
create mode 100644 arch/powerpc/include/asm/kup.h
create mode 100644 arch/powerpc/include/asm/nohash/32/kup-8xx.h
--
2.13.3
Powered by blists - more mailing lists