]> Pileus Git - ~andy/linux/blobdiff - arch/tile/lib/usercopy_32.S
Merge branch 'for-3.9/core' of git://git.kernel.dk/linux-block
[~andy/linux] / arch / tile / lib / usercopy_32.S
index 979f76d837460616cec4e036dde7c03e527e2c8b..b62d002af0096fe89793f5fb4eba6c357ef55922 100644 (file)
 
 /* Access user memory, but use MMU to avoid propagating kernel exceptions. */
 
-       .pushsection .fixup,"ax"
-
-get_user_fault:
-       { move r0, zero; move r1, zero }
-       { movei r2, -EFAULT; jrp lr }
-       ENDPROC(get_user_fault)
-
-put_user_fault:
-       { movei r0, -EFAULT; jrp lr }
-       ENDPROC(put_user_fault)
-
-       .popsection
-
-/*
- * __get_user_N functions take a pointer in r0, and return 0 in r2
- * on success, with the value in r0; or else -EFAULT in r2.
- */
-#define __get_user_N(bytes, LOAD) \
-       STD_ENTRY(__get_user_##bytes); \
-1:     { LOAD r0, r0; move r1, zero; move r2, zero }; \
-       jrp lr; \
-       STD_ENDPROC(__get_user_##bytes); \
-       .pushsection __ex_table,"a"; \
-       .word 1b, get_user_fault; \
-       .popsection
-
-__get_user_N(1, lb_u)
-__get_user_N(2, lh_u)
-__get_user_N(4, lw)
-
-/*
- * __get_user_8 takes a pointer in r0, and returns 0 in r2
- * on success, with the value in r0/r1; or else -EFAULT in r2.
- */
-       STD_ENTRY(__get_user_8);
-1:     { lw r0, r0; addi r1, r0, 4 };
-2:     { lw r1, r1; move r2, zero };
-       jrp lr;
-       STD_ENDPROC(__get_user_8);
-       .pushsection __ex_table,"a";
-       .word 1b, get_user_fault;
-       .word 2b, get_user_fault;
-       .popsection
-
-/*
- * __put_user_N functions take a value in r0 and a pointer in r1,
- * and return 0 in r0 on success or -EFAULT on failure.
- */
-#define __put_user_N(bytes, STORE) \
-       STD_ENTRY(__put_user_##bytes); \
-1:     { STORE r1, r0; move r0, zero }; \
-       jrp lr; \
-       STD_ENDPROC(__put_user_##bytes); \
-       .pushsection __ex_table,"a"; \
-       .word 1b, put_user_fault; \
-       .popsection
-
-__put_user_N(1, sb)
-__put_user_N(2, sh)
-__put_user_N(4, sw)
-
-/*
- * __put_user_8 takes a value in r0/r1 and a pointer in r2,
- * and returns 0 in r0 on success or -EFAULT on failure.
- */
-STD_ENTRY(__put_user_8)
-1:      { sw r2, r0; addi r2, r2, 4 }
-2:      { sw r2, r1; move r0, zero }
-       jrp lr
-       STD_ENDPROC(__put_user_8)
-       .pushsection __ex_table,"a"
-       .word 1b, put_user_fault
-       .word 2b, put_user_fault
-       .popsection
-
-
 /*
  * strnlen_user_asm takes the pointer in r0, and the length bound in r1.
  * It returns the length, including the terminating NUL, or zero on exception.