Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Will Deacon <will@kernel.org>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	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: Re: [PATCH 06/12] arm64: assembler: Remove endianness helper macros
Date: Fri, 21 Aug 2026 10:23:52 +0100	[thread overview]
Message-ID: <aogZKCKxXISedTj5@willie-the-truck> (raw)
In-Reply-To: <207397b0-07f2-467c-8419-3109a506cc7d@app.fastmail.com>

On Thu, Aug 20, 2026 at 04:50:41PM +0300, Ard Biesheuvel wrote:
> 
> 
> On Thu, 20 Aug 2026, at 16:45, Will Deacon wrote:
> > On Thu, Aug 20, 2026 at 04:27:06PM +0300, Ard Biesheuvel wrote:
> >> 
> >> On Thu, 20 Aug 2026, at 16:19, Will Deacon wrote:
> >> > On Sun, Aug 16, 2026 at 10:42:40AM +0100, Will Deacon wrote:
> >> >> On Tue, Aug 11, 2026 at 05:04:43PM +0200, Ard Biesheuvel wrote:
> >> >> > On Tue, 11 Aug 2026, at 16:01, Will Deacon wrote:
> >> >> > > diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
> >> >> > > index 87a822e5c4ca..8951ce693552 100644
> >> >> > > --- a/arch/arm64/kernel/head.S
> >> >> > > +++ b/arch/arm64/kernel/head.S
> >> >> > > @@ -138,8 +138,7 @@ SYM_CODE_START_LOCAL(record_mmu_state)
> >> >> > >  	b.ne	0f
> >> >> > >  	mrs	x19, sctlr_el2
> >> >> > >  0:
> >> >> > > -CPU_LE( tbnz	x19, #SCTLR_ELx_EE_SHIFT, 1f	)
> >> >> > > -CPU_BE( tbz	x19, #SCTLR_ELx_EE_SHIFT, 1f	)
> >> >> > > +	tbnz	x19, #SCTLR_ELx_EE_SHIFT, 1f
> >> >> > >  	tst	x19, #SCTLR_ELx_C		// Z := (C == 0)
> >> >> > >  	and	x19, x19, #SCTLR_ELx_M		// isolate M bit
> >> >> > >  	csel	x19, xzr, x19, eq		// clear x19 if Z
> >> >> > 
> >> >> > There is some more code that can be removed here - see
> >> >> > 2ced0f30a426c7301350681f838344d5aea711e3
> >> >> 
> >> >> Good spot, thanks! I'll do some more surgery at -rc1.
> >> >
> >> > Looking at this again, I'm not sure we can remove much here. I think we
> >> > probably still want to force little-endian (i.e. clear the EE bit) if
> >> > we're entered as big-endian. I've changed the following EOR to a BIC
> >> > (see below), but I think that's about all we can do?
> >> >
> >> 
> >> Well, the only case where we allow an active ID map is when doing EFI
> >> boot, which is guaranteed to be little-endian. Since the kernel is now
> >> also guaranteed to be little-endian, we should be able to simply kick
> >> the CPU in LE mode right at the start, no? And simply ignore the case
> >> of a BE bootloader entering with the MMU and caches enabled?
> >
> > Hmm, so why did we support this in the first place given that EFI is
> > guaranteed to be little-endian? Or was that just because we wanted to
> > handle the case of a big-endian kernel being loaded by EFI?
> >
> 
> The original report is here:
> https://lore.kernel.org/linux-arm-kernel/Y9FZsBEu8hSVVIA8@dev-arch.thelio-3990X/
> 
> So it would probably have been sufficient at the time to just kick
> the CPU into LE mode - I don't remember why I added the additional
> logic tbh.

Okey doke. I'll do it in v2, but as a standalone patch rather than folding
it in with this one..

Will


  reply	other threads:[~2026-08-21  9:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-11 14:01 [PATCH 00/12] arm64: Remove unused big-endian support Will Deacon
2026-08-11 14:01 ` [PATCH 01/12] selftests/arm64: Remove " Will Deacon
2026-08-11 14:01 ` [PATCH 02/12] arm64: bpf: Remove big-endian support from the JIT compiler Will Deacon
2026-08-11 14:01 ` [PATCH 03/12] arm64: crypto: Assume a little-endian kernel Will Deacon
2026-08-11 14:01 ` [PATCH 04/12] arm64: lib: Assume a little-endian kernel in custom library routines Will Deacon
2026-08-11 14:01 ` [PATCH 05/12] arm64: lib: Assume a little-endian kernel in optimised string routines Will Deacon
2026-08-11 14:01 ` [PATCH 06/12] arm64: assembler: Remove endianness helper macros Will Deacon
2026-08-11 15:04   ` Ard Biesheuvel
2026-08-16  9:42     ` Will Deacon
2026-08-20 13:19       ` Will Deacon
2026-08-20 13:27         ` Ard Biesheuvel
2026-08-20 13:45           ` Will Deacon
2026-08-20 13:50             ` Ard Biesheuvel
2026-08-21  9:23               ` Will Deacon [this message]
2026-08-11 14:01 ` [PATCH 07/12] arm64: vdso32: Always build compat vDSO object as little-endian Will Deacon
2026-08-11 14:01 ` [PATCH 08/12] KVM: arm64: Remove support for a big-endian hypervisor object Will Deacon
2026-08-11 14:01 ` [PATCH 09/12] arm64: Remove all usage of CONFIG_CPU_BIG_ENDIAN Will Deacon
2026-08-11 14:49   ` Marc Zyngier
2026-08-11 14:01 ` [PATCH 10/12] arm64: Remove all usage of __AARCH64EB__ Will Deacon
2026-08-11 14:01 ` [PATCH 11/12] arm64: image: Remove endianness handling for generating image header Will Deacon
2026-08-11 14:01 ` [PATCH 12/12] arm64: Kbuild: Remove vestigial big-endian support Will Deacon
2026-08-11 14:54 ` [PATCH 00/12] arm64: Remove unused " Marc Zyngier
2026-08-11 15:11 ` Arnd Bergmann
2026-08-16  9:47   ` Will Deacon
2026-08-16 10:15     ` Arnd Bergmann
2026-08-18 10:33       ` Will Deacon
2026-08-18 17:24   ` Eric Biggers
2026-08-11 15:43 ` 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=aogZKCKxXISedTj5@willie-the-truck \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox