[PATCHv5 00/12] arm64: remove set_fs() and friends

Mark Rutland mark.rutland at arm.com
Wed Dec 2 08:15:46 EST 2020


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

Since v3 [4]:
* Rebase to v5.10-rc3 (trivial)
* Fix __get_kernel_nofault / __put_kernel_nofault error handling
* Fix include in mte asm
* Fix which patches change includes
* Fix typos

Since v4 [5]:
* Drop patches queued as arm64's for-next/uaccess branch
* Trivial rebase atop of for-next/uaccess (v5.10-rc3 based)
* Clarify __{get,put}_mem_asm() argument names
* Drop UAO manipulation, with expanded commentary
* Add R-b tags
* Fix typos

I've given v5 some light boot + userspace testing; prior versions have seen LTP
and Syzkaller runs, so I'm not expecteing any major issues (but I'm soaking
this under Syzkaller regardless).

Catalin, Will, there's is a trivial conflict with for-next/lto that git doesn't
seem smart enough to resolve automatically despite our attempts to make this
easy. The right thing to do is take Will's version of asm/alternative.h (which
deletes the macros that got moved elsewhere), and my version of
asm/asm-uaccess.h (which leaves the trivial ldtr/sttr helpers). I understand if
you'd now prefer to wait and take this for v5.12, in which case I'll wait and
rebase this atop v5.11-rc1 when that's out.

Patch 2 got an R-B from James in v4, but I dropped that for v5 since the UAO
bits changed (based on feedback from catalin and James later in the series) and
I didn't want to be presumptuous.

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
[4] https://lore/kernel.org/r/20201026133156.44186-1-mark.rutland@arm.com
[5] https://lore.kernel.org/r/20201113124937.20574-1-mark.rutland@arm.com

Mark Rutland (12):
  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  |  15 ++-
 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      |   3 +-
 arch/arm64/include/asm/thread_info.h |  10 +-
 arch/arm64/include/asm/uaccess.h     | 174 +++++++++++++++--------------------
 arch/arm64/kernel/armv8_deprecated.c |   4 +-
 arch/arm64/kernel/asm-offsets.c      |   3 +-
 arch/arm64/kernel/cpufeature.c       |  32 -------
 arch/arm64/kernel/entry.S            |  19 +---
 arch/arm64/kernel/process.c          |  12 ---
 arch/arm64/kernel/sdei.c             |  33 +++++--
 arch/arm64/kernel/signal.c           |   3 -
 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 -
 drivers/firmware/arm_sdei.c          |  14 ---
 27 files changed, 181 insertions(+), 322 deletions(-)

-- 
2.11.0




More information about the linux-arm-kernel mailing list