Re: [PATCH v4 0/5] ARM: omap[34]: Thumb-2 compatibility fixes

Nicolas Pitre
2011-02-14T15:00:27Z

On Mon, 14 Feb 2011, Dave Martin wrote:

> @@ -289,8 +297,20 @@ clean_l2:
> * - should be faster and will change with kernel
> * - 'might' have to copy address, load and jump to it
> */
> +#ifdef CONFIG_THUMB2_KERNEL
> + /* kernel is non-interworking : must do this from Thumb */
> + adr r1, . + 1
> + bx r1
> + .thumb
> +#endif
> ldr r1, kernel_flush

Didn't you mean this instead:

/* kernel is non-interworking : must do this from Thumb */
adr r1, 1f + 1
bx r1
.thumb
1: ldr r1, kernel_flush
...

?

> blx r1
> +#ifdef CONFIG_THUMB2_KERNEL
> + .align
> + bx pc
> + nop
> + .arm

Also here, the .align has the potential to introduce a zero halfword in
the instruction stream before the bx. What about:

adr r3, 1f
bx r3
.align
.arm
1: ...

Nicolas