[PATCH 1/8] arm64/kernel: use literal for relocated address of __secondary_switched
Will Deacon
will.deacon at arm.com
Thu Apr 7 02:38:53 PDT 2016
On Mon, Apr 04, 2016 at 04:52:17PM +0200, Ard Biesheuvel wrote:
> We can simply use a relocated 64-bit literal to store the address of
> __secondary_switched(), and the relocation code will ensure that it
> holds the correct value at secondary entry time, as long as we make sure
> that the literal value is visible to the secondaries before they enable
> their MMUs. So place the literal next to kimage_vaddr, and set the alignment
> so that it is covered by the same cacheline that we already have to clean
> for a similar purpose.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> ---
> arch/arm64/kernel/head.S | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
> index 4203d5f257bc..69b33535911e 100644
> --- a/arch/arm64/kernel/head.S
> +++ b/arch/arm64/kernel/head.S
> @@ -471,7 +471,8 @@ __mmap_switched:
> b 0b
>
> 2: adr_l x8, kimage_vaddr // make relocated kimage_vaddr
> - dc cvac, x8 // value visible to secondaries
> + // and __secondary_switched
> + dc cvac, x8 // values visible to secondaries
> dsb sy // with MMU off
> #endif
>
> @@ -506,10 +507,12 @@ ENDPROC(__mmap_switched)
> * end early head section, begin head code that is also used for
> * hotplug and needs to have the same protections as the text region
> */
> - .section ".text","ax"
> -
> + .section ".text","ax"
> + .align 4
> ENTRY(kimage_vaddr)
Since ENTRY already has a .align 4, can you drop the explicit directive
here?
Will
More information about the linux-arm-kernel
mailing list