1/* 2 * arch/s390x/lib/uaccess.S 3 * fixup routines for copy_{from|to}_user functions. 4 * 5 * S390 6 * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation 7 * Authors(s): Martin Schwidefsky (schwidefsky@de.ibm.com) 8 * 9 * These functions have standard call interface 10 */ 11 12#include <asm/lowcore.h> 13 14 .text 15 .align 4 16 .globl __copy_from_user_asm 17__copy_from_user_asm: 18 lgr %r5,%r3 19 sacf 512 200: mvcle %r2,%r4,0 21 jo 0b 22 sacf 0 23 lgr %r2,%r5 24 br %r14 251: lg %r1,__LC_PGM_OLD_PSW+8 262: lghi %r3,-4096 27 ng %r3,__LC_TRANS_EXC_ADDR 28 sgr %r3,%r4 29 bm 4(%r1) 303: mvcle %r2,%r4,0 31 b 4(%r1) 32 .section __ex_table,"a" 33 .align 8 34 .quad 0b,1b 35 .quad 3b,2b 36 .previous 37 38 .align 4 39 .text 40 .globl __copy_to_user_asm 41__copy_to_user_asm: 42 lgr %r5,%r3 43 sacf 512 440: mvcle %r4,%r2,0 45 jo 0b 46 sacf 0 47 lgr %r2,%r3 48 br %r14 491: lg %r1,__LC_PGM_OLD_PSW+8 502: lghi %r5,-4096 51 ng %r5,__LC_TRANS_EXC_ADDR 52 sgr %r5,%r4 53 bm 4(%r1) 543: mvcle %r4,%r2,0 55 b 4(%r1) 56 .section __ex_table,"a" 57 .align 8 58 .quad 0b,1b 59 .quad 3b,2b 60 .previous 61 62 .align 4 63 .text 64 .globl __clear_user_asm 65__clear_user_asm: 66 lgr %r4,%r2 67 lgr %r5,%r3 68 sgr %r2,%r2 69 sgr %r3,%r3 70 sacf 512 710: mvcle %r4,%r2,0 72 jo 0b 73 sacf 0 74 lgr %r2,%r5 75 br %r14 761: lg %r1,__LC_PGM_OLD_PSW+8 772: lghi %r5,-4096 78 ng %r5,__LC_TRANS_EXC_ADDR 79 sgr %r5,%r4 80 bm 4(%r1) 813: mvcle %r4,%r2,0 82 b 4(%r1) 83 .section __ex_table,"a" 84 .align 8 85 .quad 0b,1b 86 .quad 3b,2b 87 .previous 88