From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 4/9] arm64: head.S: move KASLR processing out of __enable_mmu()
Date: Tue, 30 Aug 2016 11:24:39 +0100 [thread overview]
Message-ID: <20160830102439.GC1223@leverpostej> (raw)
In-Reply-To: <CAKv+Gu-N+-Qykg30UDaisgA+J1e0p-+GGuE9diz1=Hoh_yPPtw@mail.gmail.com>
On Thu, Aug 25, 2016 at 02:59:51PM +0100, Ard Biesheuvel wrote:
> On 24 August 2016 at 21:46, Mark Rutland <mark.rutland@arm.com> wrote:
> > On Wed, Aug 24, 2016 at 09:36:10PM +0100, Mark Rutland wrote:
> >> On Wed, Aug 24, 2016 at 04:36:01PM +0200, Ard Biesheuvel wrote:
> >> > +__primary_switch:
> >> > +#ifdef CONFIG_RANDOMIZE_BASE
> >> > + mov x19, x0 // preserve new SCTLR_EL1 value
> >> > + mrs x20, sctlr_el1 // preserve old SCTLR_EL1 value
> >> > +#endif
> >> > +
> >> > + adr x27, 0f
> >> > + b __enable_mmu
> >>
> >> As we do elsewhere, it's probably worth a comment on the line with the ADR into
> >> x27, mentioning that __enable_mmu will branch there.
> >>
> >> ... or perhaps we should just have __enable_mmu return to the LR like a normal
> >> AAPCS function, place the switch routines in the idmap, and use the idiomatic
> >> sequence:
> >>
> >> __thing_switch:
> >> bl __enable_mmu
> >> ldr xN, =__thing
> >> blr xN
> >
> > ... and now I see that this is what subsequent patches do ;)
> >
> > Is it possible to first AAPCS-ify __enable_mmu (with shuffling of callers as
> > above) in one patch, prior to this?
>
> Yes, but that would result in an __enable_mmu() that needs to stash
> the link register value, and essentially returns twice in the KASLR
> case.
Ah, good point. I had missed that.
> As an intermediate step working towards the result after the series, I
> think the adr + label above is the lesser evil
Yes, it probably is.
I'll try to flip back into review mode, keeping the above in mind.
Thanks,
Mark.
next prev parent reply other threads:[~2016-08-30 10:24 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-24 14:35 [PATCH v2 0/9] arm64: clean up early boot function calls Ard Biesheuvel
2016-08-24 14:35 ` [PATCH v2 1/9] arm64: kernel: get rid of x25 and x26 with 'global' scope Ard Biesheuvel
2016-08-24 14:35 ` [PATCH v2 2/9] arm64: kernel: fix style issues in sleep.S Ard Biesheuvel
2016-08-24 16:13 ` Mark Rutland
2016-08-24 14:36 ` [PATCH v2 3/9] arm64: kernel: use ordinary return/argument register for el2_setup() Ard Biesheuvel
2016-08-24 16:20 ` Mark Rutland
2016-08-24 14:36 ` [PATCH v2 4/9] arm64: head.S: move KASLR processing out of __enable_mmu() Ard Biesheuvel
2016-08-24 20:36 ` Mark Rutland
2016-08-24 20:44 ` Ard Biesheuvel
2016-08-24 20:46 ` Mark Rutland
2016-08-25 13:59 ` Ard Biesheuvel
2016-08-30 10:24 ` Mark Rutland [this message]
2016-08-30 13:45 ` Mark Rutland
2016-08-24 14:36 ` [PATCH v2 5/9] arm64: kernel: use x30 for __enable_mmu return address Ard Biesheuvel
2016-08-24 14:36 ` [PATCH v2 6/9] arm64: call __enable_mmu as an ordinary function for secondary/resume Ard Biesheuvel
2016-08-30 14:07 ` Mark Rutland
2016-08-24 14:36 ` [PATCH v2 7/9] arm64: kernel: drop use of x24 from primary boot path Ard Biesheuvel
2016-08-30 14:26 ` Mark Rutland
2016-08-24 14:36 ` [PATCH v2 8/9] arm64: head.S: use ordinary stack frame for __primary_switched() Ard Biesheuvel
2016-08-30 14:38 ` Mark Rutland
2016-08-24 14:36 ` [PATCH v2 9/9] arm64: head.S: document the use of callee saved registers Ard Biesheuvel
2016-08-30 14:43 ` Mark Rutland
2016-08-30 14:48 ` [PATCH v2 0/9] arm64: clean up early boot function calls Mark Rutland
2016-08-30 14:50 ` Ard Biesheuvel
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=20160830102439.GC1223@leverpostej \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).