git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git]
/
arch
/
s390
/
lib
/
uaccess64.S
diff --git
a/arch/s390/lib/uaccess64.S
b/arch/s390/lib/uaccess64.S
index
19b41a3
..
7fbe363
100644
(file)
--- a/
arch/s390/lib/uaccess64.S
+++ b/
arch/s390/lib/uaccess64.S
@@
-40,7
+40,17
@@
__copy_from_user_asm:
# move with the reduced length which is < 256
5: mvcp 0(%r5,%r2),0(%r4),%r0
slgr %r3,%r5
# move with the reduced length which is < 256
5: mvcp 0(%r5,%r2),0(%r4),%r0
slgr %r3,%r5
-6: lgr %r2,%r3
+ algr %r2,%r5
+6: lgr %r5,%r3 # copy remaining size
+ aghi %r5,-1 # subtract 1 for xc loop
+ bras %r4,8f
+ xc 0(1,%r2),0(%r2)
+7: xc 0(256,%r2),0(%r2)
+ la %r2,256(%r2)
+8: aghi %r5,-256
+ jnm 7b
+ ex %r5,0(%r4)
+9: lgr %r2,%r3
br %r14
.section __ex_table,"a"
.quad 0b,4b
br %r14
.section __ex_table,"a"
.quad 0b,4b