[PATCH 00/12] arm64: Remove unused big-endian support
From: Will Deacon
Date: Tue Aug 11 2026 - 10:09:13 EST
Hi folks,
Big-endian support on arm64 (CONFIG_CPU_BIG_ENDIAN) has depended on
BROKEN since 1cf89b6bf660 ("arm64: Kconfig: Make CPU_BIG_ENDIAN depend
on BROKEN") and has already seen some clean-up patches removing some of
the unused support code (e.g. 5276ea17a23c ("lib/crc: arm64: Assume a
little-endian kernel")).
Finish the job, and remove the remaining big-endian support code from
arm64. Note that the SETEND emulation for 32-bit tasks remains and so
some of the mixed-endian EL0 helpers are retained.
I've broken this down into fairly coarse chunks, as it seemed a lot
easier to manage than one giant patch (even with the Kconfig being
effectively disabled already) and not all of it is just mindless
deletion. Despite that, I'm anticipating the whole thing going via the
arm64 tree.
Will
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Ard Biesheuvel <ardb@xxxxxxxxxx>
Cc: Eric Biggers <ebiggers@xxxxxxxxxx>
Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Alexei Starovoitov <ast@xxxxxxxxxx>
Cc: Oliver Upton <oupton@xxxxxxxxxx>
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Cc: Marc Zyngier <maz@xxxxxxxxxx>
--->8
Will Deacon (12):
selftests/arm64: Remove big-endian support
arm64: bpf: Remove big-endian support from the JIT compiler
arm64: crypto: Assume a little-endian kernel
arm64: lib: Assume a little-endian kernel in custom library routines
arm64: lib: Assume a little-endian kernel in optimised string routines
arm64: assembler: Remove endianness helper macros
arm64: vdso32: Always build compat vDSO object as little-endian
KVM: arm64: Remove support for a big-endian hypervisor object
arm64: Remove all usage of CONFIG_CPU_BIG_ENDIAN
arm64: Remove all usage of __AARCH64EB__
arm64: image: Remove endianness handling for generating image header
arm64: Kbuild: Remove vestigial big-endian support
arch/arm64/Kconfig | 35 +-------
arch/arm64/Makefile | 12 +--
arch/arm64/crypto/aes-ce-ccm-core.S | 4 +-
arch/arm64/crypto/aes-neonbs-core.S | 4 +-
arch/arm64/crypto/ghash-ce-core.S | 6 +-
arch/arm64/crypto/sm4-ce-cipher-core.S | 4 +-
arch/arm64/include/asm/assembler.h | 42 ---------
arch/arm64/include/asm/compat.h | 14 ---
arch/arm64/include/asm/elf.h | 12 ---
arch/arm64/include/asm/processor.h | 2 -
arch/arm64/include/asm/ptrace.h | 6 --
arch/arm64/include/asm/sysreg.h | 50 +++--------
arch/arm64/include/asm/thread_info.h | 5 --
arch/arm64/include/asm/word-at-a-time.h | 6 --
arch/arm64/include/uapi/asm/byteorder.h | 4 -
arch/arm64/kernel/fpsimd.c | 21 +----
arch/arm64/kernel/head.S | 7 +-
arch/arm64/kernel/image.h | 38 +-------
arch/arm64/kernel/kexec_image.c | 5 +-
arch/arm64/kernel/kgdb.c | 3 -
arch/arm64/kernel/ptrace.c | 8 +-
arch/arm64/kernel/signal32.c | 13 ---
arch/arm64/kernel/sys32.c | 5 --
arch/arm64/kernel/vdso32/Makefile | 4 -
arch/arm64/kvm/hyp/include/nvhe/spinlock.h | 4 -
arch/arm64/kvm/hyp/nvhe/gen-hyprel.c | 16 ----
arch/arm64/lib/csum.c | 17 ----
arch/arm64/lib/memchr.S | 2 +-
arch/arm64/lib/memcmp.S | 2 -
arch/arm64/lib/strcmp.S | 34 +------
arch/arm64/lib/strlen.S | 26 ------
arch/arm64/lib/strncmp.S | 93 ++------------------
arch/arm64/lib/strnlen.S | 16 +---
arch/arm64/mm/extable.c | 5 --
arch/arm64/net/bpf_jit_comp.c | 11 ---
tools/testing/selftests/arm64/fp/fp-ptrace.c | 19 +---
tools/testing/selftests/rseq/rseq-arm64.h | 5 --
37 files changed, 50 insertions(+), 510 deletions(-)
--
2.55.0.679.g6767b8d81c-goog