Loading arch/mips/include/asm/uaccess.h +29 −32 Original line number Diff line number Diff line Loading @@ -326,13 +326,8 @@ do { \ #define __PUT_USER_DW(insn, ptr) __put_user_asm("sd", ptr) #endif #define __put_user_nocheck(x, ptr, size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __chk_user_ptr(ptr); \ __pu_val = (x); \ #define __put_user_common(ptr, size) \ do { \ switch (size) { \ case 1: __put_user_asm("sb", ptr); break; \ case 2: __put_user_asm("sh", ptr); break; \ Loading @@ -340,6 +335,16 @@ do { \ case 8: __PUT_USER_DW("sw", ptr); break; \ default: __put_user_unknown(); break; \ } \ } while (0) #define __put_user_nocheck(x, ptr, size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __chk_user_ptr(ptr); \ __pu_val = (x); \ __put_user_common(ptr, size); \ __pu_err; \ }) Loading @@ -350,15 +355,9 @@ do { \ int __pu_err = -EFAULT; \ \ might_fault(); \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \ switch (size) { \ case 1: __put_user_asm("sb", __pu_addr); break; \ case 2: __put_user_asm("sh", __pu_addr); break; \ case 4: __put_user_asm("sw", __pu_addr); break; \ case 8: __PUT_USER_DW("sw", __pu_addr); break; \ default: __put_user_unknown(); break; \ } \ } \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) \ __put_user_common(__pu_addr, size); \ \ __pu_err; \ }) Loading Loading @@ -594,19 +593,23 @@ do { \ #define __PUT_USER_UNALIGNED_DW(ptr) __put_user_unaligned_asm("usd", ptr) #endif #define __put_user_unaligned_nocheck(x,ptr,size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __pu_val = (x); \ #define __put_user_unaligned_common(ptr, size) \ do { \ switch (size) { \ case 1: __put_user_asm("sb", ptr); break; \ case 2: __put_user_unaligned_asm("ush", ptr); break; \ case 4: __put_user_unaligned_asm("usw", ptr); break; \ case 8: __PUT_USER_UNALIGNED_DW(ptr); break; \ default: __put_user_unaligned_unknown(); break; \ } \ } while (0) #define __put_user_unaligned_nocheck(x,ptr,size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __pu_val = (x); \ __put_user_unaligned_common(ptr, size); \ __pu_err; \ }) Loading @@ -616,15 +619,9 @@ do { \ __typeof__(*(ptr)) __pu_val = (x); \ int __pu_err = -EFAULT; \ \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \ switch (size) { \ case 1: __put_user_asm("sb", __pu_addr); break; \ case 2: __put_user_unaligned_asm("ush", __pu_addr); break; \ case 4: __put_user_unaligned_asm("usw", __pu_addr); break; \ case 8: __PUT_USER_UNALGINED_DW(__pu_addr); break; \ default: __put_user_unaligned_unknown(); break; \ } \ } \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) \ __put_user_unaligned_common(__pu_addr, size); \ \ __pu_err; \ }) Loading Loading
arch/mips/include/asm/uaccess.h +29 −32 Original line number Diff line number Diff line Loading @@ -326,13 +326,8 @@ do { \ #define __PUT_USER_DW(insn, ptr) __put_user_asm("sd", ptr) #endif #define __put_user_nocheck(x, ptr, size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __chk_user_ptr(ptr); \ __pu_val = (x); \ #define __put_user_common(ptr, size) \ do { \ switch (size) { \ case 1: __put_user_asm("sb", ptr); break; \ case 2: __put_user_asm("sh", ptr); break; \ Loading @@ -340,6 +335,16 @@ do { \ case 8: __PUT_USER_DW("sw", ptr); break; \ default: __put_user_unknown(); break; \ } \ } while (0) #define __put_user_nocheck(x, ptr, size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __chk_user_ptr(ptr); \ __pu_val = (x); \ __put_user_common(ptr, size); \ __pu_err; \ }) Loading @@ -350,15 +355,9 @@ do { \ int __pu_err = -EFAULT; \ \ might_fault(); \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \ switch (size) { \ case 1: __put_user_asm("sb", __pu_addr); break; \ case 2: __put_user_asm("sh", __pu_addr); break; \ case 4: __put_user_asm("sw", __pu_addr); break; \ case 8: __PUT_USER_DW("sw", __pu_addr); break; \ default: __put_user_unknown(); break; \ } \ } \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) \ __put_user_common(__pu_addr, size); \ \ __pu_err; \ }) Loading Loading @@ -594,19 +593,23 @@ do { \ #define __PUT_USER_UNALIGNED_DW(ptr) __put_user_unaligned_asm("usd", ptr) #endif #define __put_user_unaligned_nocheck(x,ptr,size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __pu_val = (x); \ #define __put_user_unaligned_common(ptr, size) \ do { \ switch (size) { \ case 1: __put_user_asm("sb", ptr); break; \ case 2: __put_user_unaligned_asm("ush", ptr); break; \ case 4: __put_user_unaligned_asm("usw", ptr); break; \ case 8: __PUT_USER_UNALIGNED_DW(ptr); break; \ default: __put_user_unaligned_unknown(); break; \ } \ } while (0) #define __put_user_unaligned_nocheck(x,ptr,size) \ ({ \ __typeof__(*(ptr)) __pu_val; \ int __pu_err = 0; \ \ __pu_val = (x); \ __put_user_unaligned_common(ptr, size); \ __pu_err; \ }) Loading @@ -616,15 +619,9 @@ do { \ __typeof__(*(ptr)) __pu_val = (x); \ int __pu_err = -EFAULT; \ \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \ switch (size) { \ case 1: __put_user_asm("sb", __pu_addr); break; \ case 2: __put_user_unaligned_asm("ush", __pu_addr); break; \ case 4: __put_user_unaligned_asm("usw", __pu_addr); break; \ case 8: __PUT_USER_UNALGINED_DW(__pu_addr); break; \ default: __put_user_unaligned_unknown(); break; \ } \ } \ if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) \ __put_user_unaligned_common(__pu_addr, size); \ \ __pu_err; \ }) Loading