[PATCH 02/10] ARM: fixup_pv_table bug when CPU_ENDIAN_BE8

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Jun 19 13:33:18 EDT 2013


Dear Ben Dooks,

On Wed, 19 Jun 2013 13:36:38 +0100, Ben Dooks wrote:

> +#ifdef CONFIG_CPU_ENDIAN_BE8
> +	@ in BE8, we load data in BE, but instructions still in LE
> +	bic	ip, ip, #0xff000000
> +	orr	ip, ip, r6, lsl#24
> +#else
>  	bic	ip, ip, #0x000000ff
>  	orr	ip, ip, r6	@ mask in offset bits 31-24
> +#endif
>  	str	ip, [r7, r3]
>  2:	cmp	r4, r5
>  	ldrcc	r7, [r4], #4	@ use branch for delay slot

As was suggested in
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-February/150782.html,
you could put this patch later in the series and use the ARM_BE8()
macro you introduce in the next patch.

Also in
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-February/150784.html,
the same reviewer suggested to name the macro BE8() to make it fit like
ARM() and THUMB() in the margin left by the indentation of assembly
code. And also to add LE() to make the above code look like:

BE8(	bic ip, ip, #0xff000000)
BE8(	orr ip, ip, r6, lsl#24)
LE(	bic ip, ip, #0x000000ff)
LE(	orr ip, ip, r6)

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the linux-arm-kernel mailing list