[PATCH soc] ARM: use ARM_SINGLE_ARMV7M for ARMv7-M platforms
Stefan Agner
stefan at agner.ch
Fri May 22 08:36:44 PDT 2015
On 2015-05-22 17:29, Maxime Coquelin wrote:
> 2015-05-22 16:50 GMT+02:00 Arnd Bergmann <arnd at arndb.de>:
>> [one small request as I have four armv7-m folks on Cc already:
>> could one of you try to fix the warning that I get with every
>> single build: "/git/arm-soc/arch/arm/kernel/head-nommu.S: Assembler
>> messages: /git/arm-soc/arch/arm/kernel/head-nommu.S:167: Warning:
>> Use of r13 as a source register is deprecated when r15 is the
>> destination register."]
>
> Moving r13 to r12 and returning r12 seems to do the job (see below).
> But I don't know if there is a more elegant way, and if it is also
> valid for other architectures than armv7-m.
> I can propose a patch if someone can confirm it is valid.
>
> -------------------------------------------------------------------------------------------------------------
>
> diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
> index aebfbf7..e84bdad 100644
> --- a/arch/arm/kernel/head-nommu.S
> +++ b/arch/arm/kernel/head-nommu.S
> @@ -164,7 +164,8 @@ __after_proc_init:
> #endif
> mcr p15, 0, r0, c1, c0, 0 @ write control reg
> #endif /* CONFIG_CPU_CP15 */
> - ret r13
> + mov r12, r13
> + ret r12
> ENDPROC(__after_proc_init)
> .ltorg
That is actually a patch I have here too, altough I used r11 back
then... :-)
However, I don't think this is a nice solution. We should avoid using
r13 for that address in the first place, e.g. using a different register
to get the value when calling __mmap_switched. However, for that one
need to know what registers are guaranteed to be not used within
PROCINFO_INITFUNC...
--
Stefan
More information about the linux-arm-kernel
mailing list