Loading arch/arm/include/asm/uaccess.h +12 −35 Original line number Diff line number Diff line Loading @@ -311,9 +311,9 @@ do { \ (x) = (__typeof__(*(ptr)))__gu_val; \ } while (0) #define __get_user_asm_byte(x, addr, err) \ #define __get_user_asm(x, addr, err, instr) \ __asm__ __volatile__( \ "1: " TUSER(ldrb) " %1,[%2],#0\n" \ "1: " TUSER(instr) " %1, [%2], #0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ Loading @@ -329,6 +329,9 @@ do { \ : "r" (addr), "i" (-EFAULT) \ : "cc") #define __get_user_asm_byte(x, addr, err) \ __get_user_asm(x, addr, err, ldrb) #ifndef __ARMEB__ #define __get_user_asm_half(x, __gu_addr, err) \ ({ \ Loading @@ -348,22 +351,7 @@ do { \ #endif #define __get_user_asm_word(x, addr, err) \ __asm__ __volatile__( \ "1: " TUSER(ldr) " %1,[%2],#0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ "3: mov %0, %3\n" \ " mov %1, #0\n" \ " b 2b\n" \ " .popsection\n" \ " .pushsection __ex_table,\"a\"\n" \ " .align 3\n" \ " .long 1b, 3b\n" \ " .popsection" \ : "+r" (err), "=&r" (x) \ : "r" (addr), "i" (-EFAULT) \ : "cc") __get_user_asm(x, addr, err, ldr) #define __put_user(x, ptr) \ ({ \ Loading Loading @@ -393,9 +381,9 @@ do { \ } \ } while (0) #define __put_user_asm_byte(x, __pu_addr, err) \ #define __put_user_asm(x, __pu_addr, err, instr) \ __asm__ __volatile__( \ "1: " TUSER(strb) " %1,[%2],#0\n" \ "1: " TUSER(instr) " %1, [%2], #0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ Loading @@ -410,6 +398,9 @@ do { \ : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ : "cc") #define __put_user_asm_byte(x, __pu_addr, err) \ __put_user_asm(x, __pu_addr, err, strb) #ifndef __ARMEB__ #define __put_user_asm_half(x, __pu_addr, err) \ ({ \ Loading @@ -427,21 +418,7 @@ do { \ #endif #define __put_user_asm_word(x, __pu_addr, err) \ __asm__ __volatile__( \ "1: " TUSER(str) " %1,[%2],#0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ "3: mov %0, %3\n" \ " b 2b\n" \ " .popsection\n" \ " .pushsection __ex_table,\"a\"\n" \ " .align 3\n" \ " .long 1b, 3b\n" \ " .popsection" \ : "+r" (err) \ : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ : "cc") __put_user_asm(x, __pu_addr, err, str) #ifndef __ARMEB__ #define __reg_oper0 "%R2" Loading Loading
arch/arm/include/asm/uaccess.h +12 −35 Original line number Diff line number Diff line Loading @@ -311,9 +311,9 @@ do { \ (x) = (__typeof__(*(ptr)))__gu_val; \ } while (0) #define __get_user_asm_byte(x, addr, err) \ #define __get_user_asm(x, addr, err, instr) \ __asm__ __volatile__( \ "1: " TUSER(ldrb) " %1,[%2],#0\n" \ "1: " TUSER(instr) " %1, [%2], #0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ Loading @@ -329,6 +329,9 @@ do { \ : "r" (addr), "i" (-EFAULT) \ : "cc") #define __get_user_asm_byte(x, addr, err) \ __get_user_asm(x, addr, err, ldrb) #ifndef __ARMEB__ #define __get_user_asm_half(x, __gu_addr, err) \ ({ \ Loading @@ -348,22 +351,7 @@ do { \ #endif #define __get_user_asm_word(x, addr, err) \ __asm__ __volatile__( \ "1: " TUSER(ldr) " %1,[%2],#0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ "3: mov %0, %3\n" \ " mov %1, #0\n" \ " b 2b\n" \ " .popsection\n" \ " .pushsection __ex_table,\"a\"\n" \ " .align 3\n" \ " .long 1b, 3b\n" \ " .popsection" \ : "+r" (err), "=&r" (x) \ : "r" (addr), "i" (-EFAULT) \ : "cc") __get_user_asm(x, addr, err, ldr) #define __put_user(x, ptr) \ ({ \ Loading Loading @@ -393,9 +381,9 @@ do { \ } \ } while (0) #define __put_user_asm_byte(x, __pu_addr, err) \ #define __put_user_asm(x, __pu_addr, err, instr) \ __asm__ __volatile__( \ "1: " TUSER(strb) " %1,[%2],#0\n" \ "1: " TUSER(instr) " %1, [%2], #0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ Loading @@ -410,6 +398,9 @@ do { \ : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ : "cc") #define __put_user_asm_byte(x, __pu_addr, err) \ __put_user_asm(x, __pu_addr, err, strb) #ifndef __ARMEB__ #define __put_user_asm_half(x, __pu_addr, err) \ ({ \ Loading @@ -427,21 +418,7 @@ do { \ #endif #define __put_user_asm_word(x, __pu_addr, err) \ __asm__ __volatile__( \ "1: " TUSER(str) " %1,[%2],#0\n" \ "2:\n" \ " .pushsection .text.fixup,\"ax\"\n" \ " .align 2\n" \ "3: mov %0, %3\n" \ " b 2b\n" \ " .popsection\n" \ " .pushsection __ex_table,\"a\"\n" \ " .align 3\n" \ " .long 1b, 3b\n" \ " .popsection" \ : "+r" (err) \ : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ : "cc") __put_user_asm(x, __pu_addr, err, str) #ifndef __ARMEB__ #define __reg_oper0 "%R2" Loading