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

Nicolas Pitre nicolas.pitre at linaro.org
Mon Feb 14 10:00:23 EST 2011


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



More information about the linux-arm-kernel mailing list