[PATCH 1/8] arm64/kernel: use literal for relocated address of __secondary_switched

Ard Biesheuvel ard.biesheuvel at linaro.org
Thu Apr 7 02:43:48 PDT 2016


On 7 April 2016 at 11:38, Will Deacon <will.deacon at arm.com> wrote:
> 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?
>

Sure, I hadn't realised that.



More information about the linux-arm-kernel mailing list