[PATCH 2/5] ARM: OMAP2+: Fix l2dis_3630 for rodata
Nicolas Pitre
nicolas.pitre at linaro.org
Tue Jan 19 10:10:09 PST 2016
On Tue, 19 Jan 2016, Tony Lindgren wrote:
> We don't want to write to .text section. Let's move l2dis_3630
> to .data and access it via a pointer.
>
> Cc: Kees Cook <keescook at chromium.org>
> Cc: Laura Abbott <labbott at redhat.com>
> Cc: Nicolas Pitre <nicolas.pitre at linaro.org>
> Cc: Nishanth Menon <menon.nishanth at gmail.com>
> Cc: Richard Woodruff <r-woodruff2 at ti.com>
> Cc: Russell King <linux at arm.linux.org.uk>
> Cc: Tero Kristo <t-kristo at ti.com>
> Signed-off-by: Tony Lindgren <tony at atomide.com>
> ---
> arch/arm/mach-omap2/sleep34xx.S | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/sleep34xx.S b/arch/arm/mach-omap2/sleep34xx.S
> index 787cfda..f7c7bf8 100644
> --- a/arch/arm/mach-omap2/sleep34xx.S
> +++ b/arch/arm/mach-omap2/sleep34xx.S
> @@ -86,7 +86,9 @@ ENTRY(enable_omap3630_toggle_l2_on_restore)
> stmfd sp!, {lr} @ save registers on stack
> /* Setup so that we will disable and enable l2 */
> mov r1, #0x1
> - adrl r2, l2dis_3630 @ may be too distant for plain adr
> + adrl r3, l2dis_3630_offset @ may be too distant for plain adr
> + ldr r2, [r3]
> + add r2, r2, r3
> str r1, [r2]
You could combine the add with the following str:
str r1, [r2, r3]
> ldmfd sp!, {pc} @ restore regs and return
> ENDPROC(enable_omap3630_toggle_l2_on_restore)
> @@ -415,7 +417,9 @@ ENTRY(omap3_restore)
> cmp r2, #0x0 @ Check if target power state was OFF or RET
> bne logic_l1_restore
>
> - ldr r0, l2dis_3630
> + adr r1, l2dis_3630_offset
> + ldr r0, [r1]
> + add r0, r0, r1
> cmp r0, #0x1 @ should we disable L2 on 3630?
This looks wrong. You're testing the first bit of the address for
l2dis_3630 rather than its content.
> bne skipl2dis
> mrc p15, 0, r0, c1, c0, 1
> @@ -484,7 +488,9 @@ l2_inv_gp:
> mov r12, #0x2
> smc #0 @ Call SMI monitor (smieq)
> logic_l1_restore:
> - ldr r1, l2dis_3630
> + adr r0, l2dis_3630_offset
> + ldr r1, [r0]
> + add r1, r1, r0
> cmp r1, #0x1 @ Test if L2 re-enable needed on 3630
Ditto here.
> bne skipl2reen
> mrc p15, 0, r1, c1, c0, 1
> @@ -513,6 +519,10 @@ control_stat:
> .word CONTROL_STAT
> control_mem_rta:
> .word CONTROL_MEM_RTA_CTRL
> +l2dis_3630_offset:
> + .long l2dis_3630 - .
> +
> + .data
> l2dis_3630:
> .word 0
>
> --
> 2.7.0.rc3
>
>
More information about the linux-arm-kernel
mailing list