Making allyesconfig work

Nicolas Pitre nico at fluxnic.net
Fri Jan 20 17:43:20 EST 2012


On Fri, 20 Jan 2012, Catalin Marinas wrote:

> On Fri, Jan 20, 2012 at 12:24:02PM +0000, Russell King - ARM Linux wrote:
> > On Fri, Jan 20, 2012 at 12:08:56PM +0000, Catalin Marinas wrote:
> > > On Fri, Jan 20, 2012 at 11:51:08AM +0000, Russell King - ARM Linux wrote:
> > > > There's also the troublesome T() macro, which conflicts with a bunch
> > > > of other drivers.  (I've added Catalin to the To: line for this
> > > > reason.)
> > > 
> > > This macro is used in asm/uaccess.h and asm/futex.h, so I think it would
> > > be difficult to hide it completely. But I'm happy to rename it to
> > > something else (IIRC, T stands for "Translated").
> > 
> > We should do something, because T() is just too risky for causing these
> > kinds of conflicts.
> 
> Here's a patch. For lack of inspiration, I called it TUSER (and grep'ed
> the kernel, there isn't other reference to such name).

To be on the safe side, you could even call it ARM_TUSER.

> ARM: Rename the T() macro to TUSER() to avoid namespace conflicts
> 
> From: Catalin Marinas <catalin.marinas at arm.com>
> 
> This macro is used to generate unprivileged accesses (LDRT/STRT) to user
> space.
> 
> Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>

In any case:

Acked-by: Nicolas Pitre <nico at linaro.org>

> ---
>  arch/arm/include/asm/assembler.h |    4 +-
>  arch/arm/include/asm/domain.h    |    8 ++--
>  arch/arm/include/asm/futex.h     |    8 ++--
>  arch/arm/include/asm/uaccess.h   |   16 ++++---
>  arch/arm/lib/getuser.S           |   12 +++---
>  arch/arm/lib/putuser.S           |   28 ++++++-------
>  arch/arm/lib/uaccess.S           |   82 +++++++++++++++++++-------------------
>  7 files changed, 79 insertions(+), 79 deletions(-)
> 
> diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
> index b6e65de..62f8095 100644
> --- a/arch/arm/include/asm/assembler.h
> +++ b/arch/arm/include/asm/assembler.h
> @@ -237,7 +237,7 @@
>   */
>  #ifdef CONFIG_THUMB2_KERNEL
>  
> -	.macro	usraccoff, instr, reg, ptr, inc, off, cond, abort, t=T()
> +	.macro	usraccoff, instr, reg, ptr, inc, off, cond, abort, t=TUSER()
>  9999:
>  	.if	\inc == 1
>  	\instr\cond\()b\()\t\().w \reg, [\ptr, #\off]
> @@ -277,7 +277,7 @@
>  
>  #else	/* !CONFIG_THUMB2_KERNEL */
>  
> -	.macro	usracc, instr, reg, ptr, inc, cond, rept, abort, t=T()
> +	.macro	usracc, instr, reg, ptr, inc, cond, rept, abort, t=TUSER()
>  	.rept	\rept
>  9999:
>  	.if	\inc == 1
> diff --git a/arch/arm/include/asm/domain.h b/arch/arm/include/asm/domain.h
> index af18cea..b5dc173 100644
> --- a/arch/arm/include/asm/domain.h
> +++ b/arch/arm/include/asm/domain.h
> @@ -83,9 +83,9 @@
>   * instructions (inline assembly)
>   */
>  #ifdef CONFIG_CPU_USE_DOMAINS
> -#define T(instr)	#instr "t"
> +#define TUSER(instr)	#instr "t"
>  #else
> -#define T(instr)	#instr
> +#define TUSER(instr)	#instr
>  #endif
>  
>  #else /* __ASSEMBLY__ */
> @@ -95,9 +95,9 @@
>   * instructions
>   */
>  #ifdef CONFIG_CPU_USE_DOMAINS
> -#define T(instr)	instr ## t
> +#define TUSER(instr)	instr ## t
>  #else
> -#define T(instr)	instr
> +#define TUSER(instr)	instr
>  #endif
>  
>  #endif /* __ASSEMBLY__ */
> diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
> index 253cc86..7be5469 100644
> --- a/arch/arm/include/asm/futex.h
> +++ b/arch/arm/include/asm/futex.h
> @@ -75,9 +75,9 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
>  
>  #define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg)	\
>  	__asm__ __volatile__(					\
> -	"1:	" T(ldr) "	%1, [%3]\n"			\
> +	"1:	" TUSER(ldr) "	%1, [%3]\n"			\
>  	"	" insn "\n"					\
> -	"2:	" T(str) "	%0, [%3]\n"			\
> +	"2:	" TUSER(str) "	%0, [%3]\n"			\
>  	"	mov	%0, #0\n"				\
>  	__futex_atomic_ex_table("%5")				\
>  	: "=&r" (ret), "=&r" (oldval), "=&r" (tmp)		\
> @@ -95,10 +95,10 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
>  		return -EFAULT;
>  
>  	__asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
> -	"1:	" T(ldr) "	%1, [%4]\n"
> +	"1:	" TUSER(ldr) "	%1, [%4]\n"
>  	"	teq	%1, %2\n"
>  	"	it	eq	@ explicit IT needed for the 2b label\n"
> -	"2:	" T(streq) "	%3, [%4]\n"
> +	"2:	" TUSER(streq) "	%3, [%4]\n"
>  	__futex_atomic_ex_table("%5")
>  	: "+r" (ret), "=&r" (val)
>  	: "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT)
> diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
> index b293616..2958976 100644
> --- a/arch/arm/include/asm/uaccess.h
> +++ b/arch/arm/include/asm/uaccess.h
> @@ -227,7 +227,7 @@ do {									\
>  
>  #define __get_user_asm_byte(x,addr,err)				\
>  	__asm__ __volatile__(					\
> -	"1:	" T(ldrb) "	%1,[%2],#0\n"			\
> +	"1:	" TUSER(ldrb) "	%1,[%2],#0\n"			\
>  	"2:\n"							\
>  	"	.pushsection .fixup,\"ax\"\n"			\
>  	"	.align	2\n"					\
> @@ -263,7 +263,7 @@ do {									\
>  
>  #define __get_user_asm_word(x,addr,err)				\
>  	__asm__ __volatile__(					\
> -	"1:	" T(ldr) "	%1,[%2],#0\n"			\
> +	"1:	" TUSER(ldr) "	%1,[%2],#0\n"			\
>  	"2:\n"							\
>  	"	.pushsection .fixup,\"ax\"\n"			\
>  	"	.align	2\n"					\
> @@ -308,7 +308,7 @@ do {									\
>  
>  #define __put_user_asm_byte(x,__pu_addr,err)			\
>  	__asm__ __volatile__(					\
> -	"1:	" T(strb) "	%1,[%2],#0\n"			\
> +	"1:	" TUSER(strb) "	%1,[%2],#0\n"			\
>  	"2:\n"							\
>  	"	.pushsection .fixup,\"ax\"\n"			\
>  	"	.align	2\n"					\
> @@ -341,7 +341,7 @@ do {									\
>  
>  #define __put_user_asm_word(x,__pu_addr,err)			\
>  	__asm__ __volatile__(					\
> -	"1:	" T(str) "	%1,[%2],#0\n"			\
> +	"1:	" TUSER(str) "	%1,[%2],#0\n"			\
>  	"2:\n"							\
>  	"	.pushsection .fixup,\"ax\"\n"			\
>  	"	.align	2\n"					\
> @@ -366,10 +366,10 @@ do {									\
>  
>  #define __put_user_asm_dword(x,__pu_addr,err)			\
>  	__asm__ __volatile__(					\
> - ARM(	"1:	" T(str) "	" __reg_oper1 ", [%1], #4\n"	)	\
> - ARM(	"2:	" T(str) "	" __reg_oper0 ", [%1]\n"	)	\
> - THUMB(	"1:	" T(str) "	" __reg_oper1 ", [%1]\n"	)	\
> - THUMB(	"2:	" T(str) "	" __reg_oper0 ", [%1, #4]\n"	)	\
> + ARM(	"1:	" TUSER(str) "	" __reg_oper1 ", [%1], #4\n"	) \
> + ARM(	"2:	" TUSER(str) "	" __reg_oper0 ", [%1]\n"	) \
> + THUMB(	"1:	" TUSER(str) "	" __reg_oper1 ", [%1]\n"	) \
> + THUMB(	"2:	" TUSER(str) "	" __reg_oper0 ", [%1, #4]\n"	) \
>  	"3:\n"							\
>  	"	.pushsection .fixup,\"ax\"\n"			\
>  	"	.align	2\n"					\
> diff --git a/arch/arm/lib/getuser.S b/arch/arm/lib/getuser.S
> index 1b049cd..11093a7 100644
> --- a/arch/arm/lib/getuser.S
> +++ b/arch/arm/lib/getuser.S
> @@ -31,18 +31,18 @@
>  #include <asm/domain.h>
>  
>  ENTRY(__get_user_1)
> -1:	T(ldrb)	r2, [r0]
> +1: TUSER(ldrb)	r2, [r0]
>  	mov	r0, #0
>  	mov	pc, lr
>  ENDPROC(__get_user_1)
>  
>  ENTRY(__get_user_2)
>  #ifdef CONFIG_THUMB2_KERNEL
> -2:	T(ldrb)	r2, [r0]
> -3:	T(ldrb)	r3, [r0, #1]
> +2: TUSER(ldrb)	r2, [r0]
> +3: TUSER(ldrb)	r3, [r0, #1]
>  #else
> -2:	T(ldrb)	r2, [r0], #1
> -3:	T(ldrb)	r3, [r0]
> +2: TUSER(ldrb)	r2, [r0], #1
> +3: TUSER(ldrb)	r3, [r0]
>  #endif
>  #ifndef __ARMEB__
>  	orr	r2, r2, r3, lsl #8
> @@ -54,7 +54,7 @@ ENTRY(__get_user_2)
>  ENDPROC(__get_user_2)
>  
>  ENTRY(__get_user_4)
> -4:	T(ldr)	r2, [r0]
> +4: TUSER(ldr)	r2, [r0]
>  	mov	r0, #0
>  	mov	pc, lr
>  ENDPROC(__get_user_4)
> diff --git a/arch/arm/lib/putuser.S b/arch/arm/lib/putuser.S
> index c023fc1..7db2599 100644
> --- a/arch/arm/lib/putuser.S
> +++ b/arch/arm/lib/putuser.S
> @@ -31,7 +31,7 @@
>  #include <asm/domain.h>
>  
>  ENTRY(__put_user_1)
> -1:	T(strb)	r2, [r0]
> +1: TUSER(strb)	r2, [r0]
>  	mov	r0, #0
>  	mov	pc, lr
>  ENDPROC(__put_user_1)
> @@ -40,19 +40,19 @@ ENTRY(__put_user_2)
>  	mov	ip, r2, lsr #8
>  #ifdef CONFIG_THUMB2_KERNEL
>  #ifndef __ARMEB__
> -2:	T(strb)	r2, [r0]
> -3:	T(strb)	ip, [r0, #1]
> +2: TUSER(strb)	r2, [r0]
> +3: TUSER(strb)	ip, [r0, #1]
>  #else
> -2:	T(strb)	ip, [r0]
> -3:	T(strb)	r2, [r0, #1]
> +2: TUSER(strb)	ip, [r0]
> +3: TUSER(strb)	r2, [r0, #1]
>  #endif
>  #else	/* !CONFIG_THUMB2_KERNEL */
>  #ifndef __ARMEB__
> -2:	T(strb)	r2, [r0], #1
> -3:	T(strb)	ip, [r0]
> +2: TUSER(strb)	r2, [r0], #1
> +3: TUSER(strb)	ip, [r0]
>  #else
> -2:	T(strb)	ip, [r0], #1
> -3:	T(strb)	r2, [r0]
> +2: TUSER(strb)	ip, [r0], #1
> +3: TUSER(strb)	r2, [r0]
>  #endif
>  #endif	/* CONFIG_THUMB2_KERNEL */
>  	mov	r0, #0
> @@ -60,18 +60,18 @@ ENTRY(__put_user_2)
>  ENDPROC(__put_user_2)
>  
>  ENTRY(__put_user_4)
> -4:	T(str)	r2, [r0]
> +4: TUSER(str)	r2, [r0]
>  	mov	r0, #0
>  	mov	pc, lr
>  ENDPROC(__put_user_4)
>  
>  ENTRY(__put_user_8)
>  #ifdef CONFIG_THUMB2_KERNEL
> -5:	T(str)	r2, [r0]
> -6:	T(str)	r3, [r0, #4]
> +5: TUSER(str)	r2, [r0]
> +6: TUSER(str)	r3, [r0, #4]
>  #else
> -5:	T(str)	r2, [r0], #4
> -6:	T(str)	r3, [r0]
> +5: TUSER(str)	r2, [r0], #4
> +6: TUSER(str)	r3, [r0]
>  #endif
>  	mov	r0, #0
>  	mov	pc, lr
> diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
> index d0ece2a..5c908b1 100644
> --- a/arch/arm/lib/uaccess.S
> +++ b/arch/arm/lib/uaccess.S
> @@ -32,11 +32,11 @@
>  		rsb	ip, ip, #4
>  		cmp	ip, #2
>  		ldrb	r3, [r1], #1
> -USER(		T(strb)	r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strb)	r3, [r0], #1)			@ May fault
>  		ldrgeb	r3, [r1], #1
> -USER(		T(strgeb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgeb) r3, [r0], #1)			@ May fault
>  		ldrgtb	r3, [r1], #1
> -USER(		T(strgtb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  		sub	r2, r2, ip
>  		b	.Lc2u_dest_aligned
>  
> @@ -59,7 +59,7 @@ ENTRY(__copy_to_user)
>  		addmi	ip, r2, #4
>  		bmi	.Lc2u_0nowords
>  		ldr	r3, [r1], #4
> -USER(		T(str)	r3, [r0], #4)			@ May fault
> +USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		mov	ip, r0, lsl #32 - PAGE_SHIFT	@ On each page, use a ld/st??t instruction
>  		rsb	ip, ip, #0
>  		movs	ip, ip, lsr #32 - PAGE_SHIFT
> @@ -88,18 +88,18 @@ USER(		T(str)	r3, [r0], #4)			@ May fault
>  		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
>  		tst	ip, #4
>  		ldrne	r3, [r1], #4
> -		T(strne) r3, [r0], #4			@ Shouldnt fault
> +	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
>  		ands	ip, ip, #3
>  		beq	.Lc2u_0fupi
>  .Lc2u_0nowords:	teq	ip, #0
>  		beq	.Lc2u_finished
>  .Lc2u_nowords:	cmp	ip, #2
>  		ldrb	r3, [r1], #1
> -USER(		T(strb)	r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strb)	r3, [r0], #1)			@ May fault
>  		ldrgeb	r3, [r1], #1
> -USER(		T(strgeb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgeb) r3, [r0], #1)			@ May fault
>  		ldrgtb	r3, [r1], #1
> -USER(		T(strgtb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  		b	.Lc2u_finished
>  
>  .Lc2u_not_enough:
> @@ -120,7 +120,7 @@ USER(		T(strgtb) r3, [r0], #1)			@ May fault
>  		mov	r3, r7, pull #8
>  		ldr	r7, [r1], #4
>  		orr	r3, r3, r7, push #24
> -USER(		T(str)	r3, [r0], #4)			@ May fault
> +USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		mov	ip, r0, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
>  		movs	ip, ip, lsr #32 - PAGE_SHIFT
> @@ -155,18 +155,18 @@ USER(		T(str)	r3, [r0], #4)			@ May fault
>  		movne	r3, r7, pull #8
>  		ldrne	r7, [r1], #4
>  		orrne	r3, r3, r7, push #24
> -		T(strne) r3, [r0], #4			@ Shouldnt fault
> +	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
>  		ands	ip, ip, #3
>  		beq	.Lc2u_1fupi
>  .Lc2u_1nowords:	mov	r3, r7, get_byte_1
>  		teq	ip, #0
>  		beq	.Lc2u_finished
>  		cmp	ip, #2
> -USER(		T(strb)	r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strb)	r3, [r0], #1)			@ May fault
>  		movge	r3, r7, get_byte_2
> -USER(		T(strgeb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgeb) r3, [r0], #1)			@ May fault
>  		movgt	r3, r7, get_byte_3
> -USER(		T(strgtb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  		b	.Lc2u_finished
>  
>  .Lc2u_2fupi:	subs	r2, r2, #4
> @@ -175,7 +175,7 @@ USER(		T(strgtb) r3, [r0], #1)			@ May fault
>  		mov	r3, r7, pull #16
>  		ldr	r7, [r1], #4
>  		orr	r3, r3, r7, push #16
> -USER(		T(str)	r3, [r0], #4)			@ May fault
> +USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		mov	ip, r0, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
>  		movs	ip, ip, lsr #32 - PAGE_SHIFT
> @@ -210,18 +210,18 @@ USER(		T(str)	r3, [r0], #4)			@ May fault
>  		movne	r3, r7, pull #16
>  		ldrne	r7, [r1], #4
>  		orrne	r3, r3, r7, push #16
> -		T(strne) r3, [r0], #4			@ Shouldnt fault
> +	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
>  		ands	ip, ip, #3
>  		beq	.Lc2u_2fupi
>  .Lc2u_2nowords:	mov	r3, r7, get_byte_2
>  		teq	ip, #0
>  		beq	.Lc2u_finished
>  		cmp	ip, #2
> -USER(		T(strb)	r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strb)	r3, [r0], #1)			@ May fault
>  		movge	r3, r7, get_byte_3
> -USER(		T(strgeb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgeb) r3, [r0], #1)			@ May fault
>  		ldrgtb	r3, [r1], #0
> -USER(		T(strgtb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  		b	.Lc2u_finished
>  
>  .Lc2u_3fupi:	subs	r2, r2, #4
> @@ -230,7 +230,7 @@ USER(		T(strgtb) r3, [r0], #1)			@ May fault
>  		mov	r3, r7, pull #24
>  		ldr	r7, [r1], #4
>  		orr	r3, r3, r7, push #8
> -USER(		T(str)	r3, [r0], #4)			@ May fault
> +USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		mov	ip, r0, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
>  		movs	ip, ip, lsr #32 - PAGE_SHIFT
> @@ -265,18 +265,18 @@ USER(		T(str)	r3, [r0], #4)			@ May fault
>  		movne	r3, r7, pull #24
>  		ldrne	r7, [r1], #4
>  		orrne	r3, r3, r7, push #8
> -		T(strne) r3, [r0], #4			@ Shouldnt fault
> +	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
>  		ands	ip, ip, #3
>  		beq	.Lc2u_3fupi
>  .Lc2u_3nowords:	mov	r3, r7, get_byte_3
>  		teq	ip, #0
>  		beq	.Lc2u_finished
>  		cmp	ip, #2
> -USER(		T(strb)	r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strb)	r3, [r0], #1)			@ May fault
>  		ldrgeb	r3, [r1], #1
> -USER(		T(strgeb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgeb) r3, [r0], #1)			@ May fault
>  		ldrgtb	r3, [r1], #0
> -USER(		T(strgtb) r3, [r0], #1)			@ May fault
> +USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  		b	.Lc2u_finished
>  ENDPROC(__copy_to_user)
>  
> @@ -295,11 +295,11 @@ ENDPROC(__copy_to_user)
>  .Lcfu_dest_not_aligned:
>  		rsb	ip, ip, #4
>  		cmp	ip, #2
> -USER(		T(ldrb)	r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrb)	r3, [r1], #1)			@ May fault
>  		strb	r3, [r0], #1
> -USER(		T(ldrgeb) r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrgeb) r3, [r1], #1)			@ May fault
>  		strgeb	r3, [r0], #1
> -USER(		T(ldrgtb) r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrgtb) r3, [r1], #1)			@ May fault
>  		strgtb	r3, [r0], #1
>  		sub	r2, r2, ip
>  		b	.Lcfu_dest_aligned
> @@ -322,7 +322,7 @@ ENTRY(__copy_from_user)
>  .Lcfu_0fupi:	subs	r2, r2, #4
>  		addmi	ip, r2, #4
>  		bmi	.Lcfu_0nowords
> -USER(		T(ldr)	r3, [r1], #4)
> +USER(	TUSER(	ldr)	r3, [r1], #4)
>  		str	r3, [r0], #4
>  		mov	ip, r1, lsl #32 - PAGE_SHIFT	@ On each page, use a ld/st??t instruction
>  		rsb	ip, ip, #0
> @@ -351,18 +351,18 @@ USER(		T(ldr)	r3, [r1], #4)
>  		ldmneia	r1!, {r3 - r4}			@ Shouldnt fault
>  		stmneia	r0!, {r3 - r4}
>  		tst	ip, #4
> -		T(ldrne) r3, [r1], #4			@ Shouldnt fault
> +	TUSER(	ldrne) r3, [r1], #4			@ Shouldnt fault
>  		strne	r3, [r0], #4
>  		ands	ip, ip, #3
>  		beq	.Lcfu_0fupi
>  .Lcfu_0nowords:	teq	ip, #0
>  		beq	.Lcfu_finished
>  .Lcfu_nowords:	cmp	ip, #2
> -USER(		T(ldrb)	r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrb)	r3, [r1], #1)			@ May fault
>  		strb	r3, [r0], #1
> -USER(		T(ldrgeb) r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrgeb) r3, [r1], #1)			@ May fault
>  		strgeb	r3, [r0], #1
> -USER(		T(ldrgtb) r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrgtb) r3, [r1], #1)			@ May fault
>  		strgtb	r3, [r0], #1
>  		b	.Lcfu_finished
>  
> @@ -375,7 +375,7 @@ USER(		T(ldrgtb) r3, [r1], #1)			@ May fault
>  
>  .Lcfu_src_not_aligned:
>  		bic	r1, r1, #3
> -USER(		T(ldr)	r7, [r1], #4)			@ May fault
> +USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  		cmp	ip, #2
>  		bgt	.Lcfu_3fupi
>  		beq	.Lcfu_2fupi
> @@ -383,7 +383,7 @@ USER(		T(ldr)	r7, [r1], #4)			@ May fault
>  		addmi	ip, r2, #4
>  		bmi	.Lcfu_1nowords
>  		mov	r3, r7, pull #8
> -USER(		T(ldr)	r7, [r1], #4)			@ May fault
> +USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  		orr	r3, r3, r7, push #24
>  		str	r3, [r0], #4
>  		mov	ip, r1, lsl #32 - PAGE_SHIFT
> @@ -418,7 +418,7 @@ USER(		T(ldr)	r7, [r1], #4)			@ May fault
>  		stmneia	r0!, {r3 - r4}
>  		tst	ip, #4
>  		movne	r3, r7, pull #8
> -USER(		T(ldrne) r7, [r1], #4)			@ May fault
> +USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
>  		orrne	r3, r3, r7, push #24
>  		strne	r3, [r0], #4
>  		ands	ip, ip, #3
> @@ -438,7 +438,7 @@ USER(		T(ldrne) r7, [r1], #4)			@ May fault
>  		addmi	ip, r2, #4
>  		bmi	.Lcfu_2nowords
>  		mov	r3, r7, pull #16
> -USER(		T(ldr)	r7, [r1], #4)			@ May fault
> +USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  		orr	r3, r3, r7, push #16
>  		str	r3, [r0], #4
>  		mov	ip, r1, lsl #32 - PAGE_SHIFT
> @@ -474,7 +474,7 @@ USER(		T(ldr)	r7, [r1], #4)			@ May fault
>  		stmneia	r0!, {r3 - r4}
>  		tst	ip, #4
>  		movne	r3, r7, pull #16
> -USER(		T(ldrne) r7, [r1], #4)			@ May fault
> +USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
>  		orrne	r3, r3, r7, push #16
>  		strne	r3, [r0], #4
>  		ands	ip, ip, #3
> @@ -486,7 +486,7 @@ USER(		T(ldrne) r7, [r1], #4)			@ May fault
>  		strb	r3, [r0], #1
>  		movge	r3, r7, get_byte_3
>  		strgeb	r3, [r0], #1
> -USER(		T(ldrgtb) r3, [r1], #0)			@ May fault
> +USER(	TUSER(	ldrgtb) r3, [r1], #0)			@ May fault
>  		strgtb	r3, [r0], #1
>  		b	.Lcfu_finished
>  
> @@ -494,7 +494,7 @@ USER(		T(ldrgtb) r3, [r1], #0)			@ May fault
>  		addmi	ip, r2, #4
>  		bmi	.Lcfu_3nowords
>  		mov	r3, r7, pull #24
> -USER(		T(ldr)	r7, [r1], #4)			@ May fault
> +USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  		orr	r3, r3, r7, push #8
>  		str	r3, [r0], #4
>  		mov	ip, r1, lsl #32 - PAGE_SHIFT
> @@ -529,7 +529,7 @@ USER(		T(ldr)	r7, [r1], #4)			@ May fault
>  		stmneia	r0!, {r3 - r4}
>  		tst	ip, #4
>  		movne	r3, r7, pull #24
> -USER(		T(ldrne) r7, [r1], #4)			@ May fault
> +USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
>  		orrne	r3, r3, r7, push #8
>  		strne	r3, [r0], #4
>  		ands	ip, ip, #3
> @@ -539,9 +539,9 @@ USER(		T(ldrne) r7, [r1], #4)			@ May fault
>  		beq	.Lcfu_finished
>  		cmp	ip, #2
>  		strb	r3, [r0], #1
> -USER(		T(ldrgeb) r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrgeb) r3, [r1], #1)			@ May fault
>  		strgeb	r3, [r0], #1
> -USER(		T(ldrgtb) r3, [r1], #1)			@ May fault
> +USER(	TUSER(	ldrgtb) r3, [r1], #1)			@ May fault
>  		strgtb	r3, [r0], #1
>  		b	.Lcfu_finished
>  ENDPROC(__copy_from_user)
> 
> 
> -- 
> Catalin
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 



More information about the linux-arm-kernel mailing list