backport ILP32 for ARM64 patches to openEuler-23.09
Andrew Pinski (3):
arm64: rename COMPAT to AARCH32_EL0
arm64: uapi: set __BITS_PER_LONG correctly for ILP32 and LP64
arm64:ilp32: add ARM64_ILP32 to Kconfig
Dave Martin (1):
arm64: signal: Make parse_user_sigframe() independent of rt_sigframe
layout
James Morse (1):
ptrace: Add compat PTRACE_{G,S}ETSIGMASK handlers
Philipp Tomsich (1):
arm64:ilp32: add vdso-ilp32 and use for signal return
Xiongfeng Wang (4):
arm64: rename functions that reference compat term
arm64: secomp: fix the secure computing mode 1 syscall check for ilp32
ilp32: avoid clearing upper 32 bits of syscall return value for ilp32
ilp32: skip ARM erratum 1418040 for ilp32 application
Yury Norov (14):
thread: move thread bits accessors to separated file
arm64: ilp32: add documentation on the ILP32 ABI for ARM64
arm64: introduce is_a32_compat_{task,thread} for AArch32 compat
arm64: ilp32: add is_ilp32_compat_{task,thread} and TIF_32BIT_AARCH64
arm64: introduce AUDIT_ARCH_AARCH64ILP32 for ilp32
arm64: introduce binfmt_elf32.c
arm64: change compat_elf_hwcap and compat_elf_hwcap2 prefix to a32
arm64: ilp32: introduce binfmt_ilp32.c
arm64: ilp32: share aarch32 syscall handlers
arm64: ilp32: introduce syscall table for ILP32
arm64: signal: share lp64 signal structures and routines to ilp32
arm64: signal32: move ilp32 and aarch32 common code to separated file
arm64: ilp32: introduce ilp32-specific sigframe and ucontext
arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32
Documentation/arm64/ilp32.txt | 52 +++
arch/arm64/Kconfig | 19 +-
arch/arm64/Makefile | 3 +
arch/arm64/include/asm/arch_timer.h | 4 +-
arch/arm64/include/asm/compat.h | 18 +-
arch/arm64/include/asm/elf.h | 32 +-
arch/arm64/include/asm/fpsimd.h | 2 +-
arch/arm64/include/asm/ftrace.h | 2 +-
arch/arm64/include/asm/hwcap.h | 8 +-
arch/arm64/include/asm/is_compat.h | 78 ++++
arch/arm64/include/asm/processor.h | 15 +-
arch/arm64/include/asm/ptrace.h | 12 +-
arch/arm64/include/asm/seccomp.h | 32 +-
arch/arm64/include/asm/signal32.h | 31 +-
arch/arm64/include/asm/signal32_common.h | 13 +
arch/arm64/include/asm/signal_common.h | 391 +++++++++++++++++
arch/arm64/include/asm/signal_ilp32.h | 23 +
arch/arm64/include/asm/syscall.h | 17 +-
arch/arm64/include/asm/thread_info.h | 4 +-
arch/arm64/include/asm/unistd.h | 5 +
arch/arm64/include/asm/vdso.h | 9 +
arch/arm64/include/uapi/asm/bitsperlong.h | 9 +-
arch/arm64/include/uapi/asm/unistd.h | 15 +-
arch/arm64/kernel/Makefile | 8 +-
arch/arm64/kernel/armv8_deprecated.c | 12 +-
arch/arm64/kernel/asm-offsets.c | 13 +-
arch/arm64/kernel/binfmt_elf32.c | 27 ++
arch/arm64/kernel/binfmt_ilp32.c | 89 ++++
arch/arm64/kernel/cpufeature.c | 36 +-
arch/arm64/kernel/cpuinfo.c | 18 +-
arch/arm64/kernel/debug-monitors.c | 4 +-
arch/arm64/kernel/entry-common.c | 6 +-
arch/arm64/kernel/hw_breakpoint.c | 8 +-
arch/arm64/kernel/perf_callchain.c | 28 +-
arch/arm64/kernel/perf_regs.c | 4 +-
arch/arm64/kernel/process.c | 15 +-
arch/arm64/kernel/proton-pack.c | 2 +-
arch/arm64/kernel/ptrace.c | 38 +-
arch/arm64/kernel/signal.c | 397 +++---------------
arch/arm64/kernel/signal32.c | 97 ++---
arch/arm64/kernel/signal32_common.c | 37 ++
arch/arm64/kernel/signal_ilp32.c | 67 +++
arch/arm64/kernel/sys32.c | 104 +----
arch/arm64/kernel/sys32_common.c | 106 +++++
arch/arm64/kernel/sys_compat.c | 12 +-
arch/arm64/kernel/sys_ilp32.c | 82 ++++
arch/arm64/kernel/syscall.c | 37 +-
arch/arm64/kernel/traps.c | 5 +-
arch/arm64/kernel/vdso-ilp32/.gitignore | 2 +
arch/arm64/kernel/vdso-ilp32/Makefile | 108 +++++
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S | 22 +
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S | 88 ++++
arch/arm64/kernel/vdso.c | 46 +-
arch/arm64/mm/fault.c | 2 +-
include/linux/sched.h | 1 +
include/linux/thread_bits.h | 87 ++++
include/linux/thread_info.h | 73 +---
include/uapi/linux/audit.h | 1 +
kernel/ptrace.c | 52 ++-
59 files changed, 1765 insertions(+), 763 deletions(-)
create mode 100644 Documentation/arm64/ilp32.txt
create mode 100644 arch/arm64/include/asm/is_compat.h
create mode 100644 arch/arm64/include/asm/signal32_common.h
create mode 100644 arch/arm64/include/asm/signal_common.h
create mode 100644 arch/arm64/include/asm/signal_ilp32.h
create mode 100644 arch/arm64/kernel/binfmt_elf32.c
create mode 100644 arch/arm64/kernel/binfmt_ilp32.c
create mode 100644 arch/arm64/kernel/signal32_common.c
create mode 100644 arch/arm64/kernel/signal_ilp32.c
create mode 100644 arch/arm64/kernel/sys32_common.c
create mode 100644 arch/arm64/kernel/sys_ilp32.c
create mode 100644 arch/arm64/kernel/vdso-ilp32/.gitignore
create mode 100644 arch/arm64/kernel/vdso-ilp32/Makefile
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S
create mode 100644 include/linux/thread_bits.h
--
2.34.1