From: Will Deacon <will@kernel.org>
To: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, Will Deacon <will@kernel.org>,
Arnd Bergmann <arnd@arndb.de>, Ard Biesheuvel <ardb@kernel.org>,
Eric Biggers <ebiggers@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Catalin Marinas <catalin.marinas@arm.com>,
Alexei Starovoitov <ast@kernel.org>,
Oliver Upton <oupton@kernel.org>,
Herbert Xu <herbert@gondor.apana.org.au>,
Marc Zyngier <maz@kernel.org>
Subject: [PATCH v3 04/13] arm64: lib: Assume a little-endian kernel in custom library routines
Date: Fri, 18 Sep 2026 15:52:06 +0100 [thread overview]
Message-ID: <20260918145217.1669-5-will@kernel.org> (raw)
In-Reply-To: <20260918145217.1669-1-will@kernel.org>
Commit 5276ea17a23c ("lib/crc: arm64: Assume a little-endian kernel")
removed all usage of the CPU_LE()/CPU_BE() macros from the arm64 CRC
assembly now that big-endian support depends on BROKEN.
Do the same for the rest of the custom arm64 library code, as well as
removing all usage of the '__LITTLE_ENDIAN' macro.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Will Deacon <will@kernel.org>
---
arch/arm64/lib/csum.c | 17 -----------------
arch/arm64/lib/memchr.S | 2 +-
2 files changed, 1 insertion(+), 18 deletions(-)
diff --git a/arch/arm64/lib/csum.c b/arch/arm64/lib/csum.c
index 2432683e48a6..75db718e5b6a 100644
--- a/arch/arm64/lib/csum.c
+++ b/arch/arm64/lib/csum.c
@@ -47,11 +47,7 @@ unsigned int __no_sanitize_address do_csum(const unsigned char *buff, int len)
*/
shift = offset * 8;
data = *ptr++;
-#ifdef __LITTLE_ENDIAN
data = (data >> shift) << shift;
-#else
- data = (data << shift) >> shift;
-#endif
/*
* Body: straightforward aligned loads from here on (the paired loads
@@ -94,13 +90,8 @@ unsigned int __no_sanitize_address do_csum(const unsigned char *buff, int len)
len -= 16;
ptr += 2;
-#ifdef __LITTLE_ENDIAN
data = tmp >> 64;
sum64 = accumulate(sum64, tmp);
-#else
- data = tmp;
- sum64 = accumulate(sum64, tmp >> 64);
-#endif
}
if (len > 0) {
sum64 = accumulate(sum64, data);
@@ -112,11 +103,7 @@ unsigned int __no_sanitize_address do_csum(const unsigned char *buff, int len)
* preserving odd/even alignment.
*/
shift = len * -8;
-#ifdef __LITTLE_ENDIAN
data = (data << shift) >> shift;
-#else
- data = (data >> shift) << shift;
-#endif
sum64 = accumulate(sum64, data);
/* Finally, folding */
@@ -140,11 +127,7 @@ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
dst = *(const __uint128_t *)daddr->s6_addr;
sum += (__force u32)htonl(len);
-#ifdef __LITTLE_ENDIAN
sum += (u32)proto << 24;
-#else
- sum += proto;
-#endif
src += (src >> 64) | (src << 64);
dst += (dst >> 64) | (dst << 64);
diff --git a/arch/arm64/lib/memchr.S b/arch/arm64/lib/memchr.S
index 37a9f2a4f7f4..b14b27cb8419 100644
--- a/arch/arm64/lib/memchr.S
+++ b/arch/arm64/lib/memchr.S
@@ -63,7 +63,7 @@ L(byte_loop):
sub srcin, srcin, #1
ret
L(found_word):
-CPU_LE( rev tmp, tmp)
+ rev tmp, tmp
clz tmp, tmp
sub tmp, tmp, #64
add result, srcin, tmp, asr #3
--
2.55.0.1082.g2b9226bbc0-goog
next prev parent reply other threads:[~2026-09-18 14:52 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 14:52 [PATCH v3 00/14] arm64: Remove unused big-endian support Will Deacon
2026-09-18 14:52 ` [PATCH v3 01/13] selftests/arm64: Remove " Will Deacon
2026-09-20 19:56 ` Thomas Gleixner
2026-09-18 14:52 ` [PATCH v3 02/13] arm64: bpf: Remove big-endian support from the JIT compiler Will Deacon
2026-09-18 14:52 ` [PATCH v3 03/13] arm64: crypto: Assume a little-endian kernel Will Deacon
2026-09-18 14:52 ` Will Deacon [this message]
2026-09-18 14:52 ` [PATCH v3 05/13] arm64: lib: Assume a little-endian kernel in optimised string routines Will Deacon
2026-09-18 14:52 ` [PATCH v3 06/13] arm64: assembler: Remove endianness helper macros Will Deacon
2026-09-18 14:52 ` [PATCH v3 07/13] arm64: vdso32: Always build compat vDSO object as little-endian Will Deacon
2026-09-18 14:52 ` [PATCH v3 08/13] KVM: arm64: Remove support for a big-endian hypervisor object Will Deacon
2026-09-18 14:52 ` [PATCH v3 09/13] arm64: Remove all usage of CONFIG_CPU_BIG_ENDIAN Will Deacon
2026-09-18 14:52 ` [PATCH v3 10/13] arm64: Remove all usage of __AARCH64EB__ Will Deacon
2026-09-18 14:52 ` [PATCH v3 11/13] crypto: hisilicon/sec2: Remove check of CONFIG_CPU_LITTLE_ENDIAN Will Deacon
2026-09-23 7:04 ` liulongfang
2026-09-18 14:52 ` [PATCH v3 12/13] arm64: Kbuild: Remove vestigial big-endian support Will Deacon
2026-09-21 10:24 ` Catalin Marinas
2026-09-22 15:10 ` Will Deacon
2026-09-22 15:17 ` Catalin Marinas
2026-09-22 15:32 ` Will Deacon
2026-09-18 14:52 ` [PATCH v3 13/13] drivers: Kconfig: Simplify dependencies on ARM64 && !CPU_BIG_ENDIAN Will Deacon
2026-09-18 16:22 ` [PATCH v3 00/14] arm64: Remove unused big-endian support Mark Rutland
2026-09-23 18:18 ` Catalin Marinas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260918145217.1669-5-will@kernel.org \
--to=will@kernel.org \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=ast@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=daniel@iogearbox.net \
--cc=ebiggers@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.