[PATCH v3 00/14] arm64: Remove unused big-endian support

Will Deacon posted 14 patches 6 days, 8 hours ago
Only 13 patches received!
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           | 31 -------
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                     |  3 +-
arch/arm64/kernel/image.h                    | 18 +---
arch/arm64/kernel/kexec_image.c              |  5 +-
arch/arm64/kernel/kgdb.c                     |  6 +-
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 ---
drivers/crypto/hisilicon/sec2/sec_main.c     |  2 +-
drivers/hv/Kconfig                           |  3 +-
drivers/misc/vmw_vmci/Kconfig                |  2 +-
drivers/net/ethernet/microsoft/Kconfig       |  2 +-
drivers/soc/tegra/Kconfig                    |  5 --
tools/testing/selftests/arm64/fp/fp-ptrace.c | 19 +---
tools/testing/selftests/rseq/rseq-arm64.h    |  5 --
42 files changed, 53 insertions(+), 489 deletions(-)
[PATCH v3 00/14] arm64: Remove unused big-endian support
Posted by Will Deacon 6 days, 8 hours ago
Hi all,

This is version three of the big-endian removal series previously posted
here:

v1: https://lore.kernel.org/r/20260811140132.22778-1-will@kernel.org/
v2: https://lore.kernel.org/r/20260907163726.17104-1-will@kernel.org

Changes since v2 include:
  * Retain support for emitting absolute symbol references with PIE
  * Retain endianness handling on EFI MMU-enabled boot path
  * Invert compile-time endianness check in Hisilicon sec2 driver
  * Added some tags

Cheers,

Will

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Eric Biggers <ebiggers@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Oliver Upton <oupton@kernel.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au> 
Cc: Marc Zyngier <maz@kernel.org>

--->8

Will Deacon (13):
  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__
  crypto: hisilicon/sec2: Remove check of CONFIG_CPU_LITTLE_ENDIAN
  arm64: Kbuild: Remove vestigial big-endian support
  drivers: Kconfig: Simplify dependencies on ARM64 && !CPU_BIG_ENDIAN

 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           | 31 -------
 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                     |  3 +-
 arch/arm64/kernel/image.h                    | 18 +---
 arch/arm64/kernel/kexec_image.c              |  5 +-
 arch/arm64/kernel/kgdb.c                     |  6 +-
 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 ---
 drivers/crypto/hisilicon/sec2/sec_main.c     |  2 +-
 drivers/hv/Kconfig                           |  3 +-
 drivers/misc/vmw_vmci/Kconfig                |  2 +-
 drivers/net/ethernet/microsoft/Kconfig       |  2 +-
 drivers/soc/tegra/Kconfig                    |  5 --
 tools/testing/selftests/arm64/fp/fp-ptrace.c | 19 +---
 tools/testing/selftests/rseq/rseq-arm64.h    |  5 --
 42 files changed, 53 insertions(+), 489 deletions(-)

-- 
2.55.0.1082.g2b9226bbc0-goog
Re: [PATCH v3 00/14] arm64: Remove unused big-endian support
Posted by Catalin Marinas 1 day, 4 hours ago
On Fri, 18 Sep 2026 15:52:02 +0100, Will Deacon wrote:
> This is version three of the big-endian removal series previously posted
> here:
> 
> v1: https://lore.kernel.org/r/20260811140132.22778-1-will@kernel.org/
> v2: https://lore.kernel.org/r/20260907163726.17104-1-will@kernel.org
> 
> Changes since v2 include:
>   * Retain support for emitting absolute symbol references with PIE
>   * Retain endianness handling on EFI MMU-enabled boot path
>   * Invert compile-time endianness check in Hisilicon sec2 driver
>   * Added some tags
> 
> [...]

Applied to arm64 (for-next/be-gone), thanks!

I added a patch before 12 to allow GVE on arm64, as discussed offline.

[01/13] selftests/arm64: Remove big-endian support
        https://git.kernel.org/arm64/c/97c1757db39d
[02/13] arm64: bpf: Remove big-endian support from the JIT compiler
        https://git.kernel.org/arm64/c/883247de6500
[03/13] arm64: crypto: Assume a little-endian kernel
        https://git.kernel.org/arm64/c/2768ccadc1b4
[04/13] arm64: lib: Assume a little-endian kernel in custom library routines
        https://git.kernel.org/arm64/c/42b69efd3418
[05/13] arm64: lib: Assume a little-endian kernel in optimised string routines
        https://git.kernel.org/arm64/c/fcec2a198957
[06/13] arm64: assembler: Remove endianness helper macros
        https://git.kernel.org/arm64/c/6a1aeecf3db9
[07/13] arm64: vdso32: Always build compat vDSO object as little-endian
        https://git.kernel.org/arm64/c/b8409b9eb74d
[08/13] KVM: arm64: Remove support for a big-endian hypervisor object
        https://git.kernel.org/arm64/c/9afaed358394
[09/13] arm64: Remove all usage of CONFIG_CPU_BIG_ENDIAN
        https://git.kernel.org/arm64/c/eab76a8e1880
[10/13] arm64: Remove all usage of __AARCH64EB__
        https://git.kernel.org/arm64/c/e93a371bb49f
[11/13] crypto: hisilicon/sec2: Remove check of CONFIG_CPU_LITTLE_ENDIAN
        https://git.kernel.org/arm64/c/bbce799407f9
[12/13] arm64: Kbuild: Remove vestigial big-endian support
        https://git.kernel.org/arm64/c/134b0fbc5c24
[13/13] drivers: Kconfig: Simplify dependencies on ARM64 && !CPU_BIG_ENDIAN
        https://git.kernel.org/arm64/c/d80ff69c9a37
Re: [PATCH v3 00/14] arm64: Remove unused big-endian support
Posted by Mark Rutland 6 days, 6 hours ago
On Fri, Sep 18, 2026 at 03:52:02PM +0100, Will Deacon wrote:
> Hi all,
> 
> This is version three of the big-endian removal series previously posted
> here:
> 
> v1: https://lore.kernel.org/r/20260811140132.22778-1-will@kernel.org/
> v2: https://lore.kernel.org/r/20260907163726.17104-1-will@kernel.org
> 
> Changes since v2 include:
>   * Retain support for emitting absolute symbol references with PIE
>   * Retain endianness handling on EFI MMU-enabled boot path
>   * Invert compile-time endianness check in Hisilicon sec2 driver
>   * Added some tags

> Will Deacon (13):
>   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__
>   crypto: hisilicon/sec2: Remove check of CONFIG_CPU_LITTLE_ENDIAN
>   arm64: Kbuild: Remove vestigial big-endian support
>   drivers: Kconfig: Simplify dependencies on ARM64 && !CPU_BIG_ENDIAN

FWIW, for the series:

Acked-by: Mark Rutland <mark.rutland@arm.com>

Mark.