[PATCHv3 00/17] arm64: remove set_fs() and friends

Mark Rutland
2020-10-26T13:33:59Z

Building atop Christoph's core rework now in v5.10-rc1, this series removes
set_fs() from arm64. The series can be found in arm64/set_fs-removal branch
[1].

Since v1 [2]:
* Remove redundant kthread init code
* Remove vestigal bit left by v1
* Rework SDEI entry
* Comment head.S better
* Fix commit message typos

Since v2 [3]:
* Rebase to v5.10-rc1
* Handle new MTE uaccess asm
* Fix trivial conflict with spectre mitigation rework
* Cleanup commit messages

I've boot-tested v3. As v2 had seen some light testing with LTP (both native
and compat), I'm not expecting any major issues, but I intend to redo that
along with a soak in Syzkaller.

Catalin, Will, I'd like to get this into next ASAP so that it can soak for a
while. Assuming there are no major issues in the coming week or two, I'm hoping
we can do that before rc4?

Thanks,
Mark.

[1] git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/set_fs-removal
[2] https://lore/kernel.org/r/20200925160722.27155-1-mark.rutland@arm.com
[3] https://lore/kernel.org/r/20201006144642.12195-1-mark.rutland@arm.com

Mark Rutland (17):
arm64: ensure ERET from kthread is illegal
arm64: add C wrappers for SET_PSTATE_*()
arm64: head.S: rename el2_setup -> init_kernel_el
arm64: head.S: cleanup SCTLR_ELx initialization
arm64: head.S: always initialize PSTATE
arm64: sdei: move uaccess logic to arch/arm64/
arm64: sdei: explicitly simulate PAN/UAO entry
arm64: uaccess: move uao_* alternatives to asm-uaccess.h
arm64: uaccess: rename privileged uaccess routines
arm64: uaccess: simplify __copy_user_flushcache()
arm64: uaccess: refactor __{get,put}_user
arm64: uaccess: split user/kernel routines
arm64: uaccess cleanup macro naming
arm64: uaccess: remove set_fs()
arm64: uaccess: remove addr_limit_user_check()
arm64: uaccess: remove redundant PAN toggling
arm64: uaccess: remove vestigal UAO support

arch/arm64/Kconfig | 22 -----
arch/arm64/include/asm/alternative.h | 59 ------------
arch/arm64/include/asm/asm-uaccess.h | 29 ++++++
arch/arm64/include/asm/cpucaps.h | 2 -
arch/arm64/include/asm/cpufeature.h | 22 ++++-
arch/arm64/include/asm/exec.h | 1 -
arch/arm64/include/asm/futex.h | 8 +-
arch/arm64/include/asm/processor.h | 4 +-
arch/arm64/include/asm/ptrace.h | 8 +-
arch/arm64/include/asm/sysreg.h | 22 +++--
arch/arm64/include/asm/thread_info.h | 10 +--
arch/arm64/include/asm/uaccess.h | 170 +++++++++++++++--------------------
arch/arm64/kernel/armv8_deprecated.c | 4 +-
arch/arm64/kernel/asm-offsets.c | 3 +-
arch/arm64/kernel/cpufeature.c | 34 +------
arch/arm64/kernel/entry.S | 19 +---
arch/arm64/kernel/head.S | 51 ++++++-----
arch/arm64/kernel/process.c | 29 ++----
arch/arm64/kernel/proton-pack.c | 4 +-
arch/arm64/kernel/sdei.c | 22 +++--
arch/arm64/kernel/signal.c | 3 -
arch/arm64/kernel/sleep.S | 2 +-
arch/arm64/kernel/suspend.c | 1 -
arch/arm64/lib/clear_user.S | 8 +-
arch/arm64/lib/copy_from_user.S | 8 +-
arch/arm64/lib/copy_in_user.S | 16 ++--
arch/arm64/lib/copy_to_user.S | 8 +-
arch/arm64/lib/mte.S | 6 +-
arch/arm64/lib/uaccess_flushcache.c | 4 +-
arch/arm64/mm/fault.c | 5 --
arch/arm64/mm/proc.S | 2 +-
drivers/firmware/arm_sdei.c | 14 ---
32 files changed, 240 insertions(+), 360 deletions(-)