diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-14 21:19:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-14 21:19:05 -0400 |
commit | b26b5ef5ec7eab0e1d84c5b281e87b2f2a5e0586 (patch) | |
tree | 3fd57787765f05a19b85b384bd2a68cb4f9276d4 /arch/alpha/lib | |
parent | 87dbe42a16b654e33665756c63e96c0fa73eb003 (diff) | |
parent | 2692a71bbd40160165e89d5505c5c28144ec5a42 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull more misc uaccess and vfs updates from Al Viro:
"The rest of the stuff from -next (more uaccess work) + assorted fixes"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
score: traps: Add missing include file to fix build error
fs/super.c: don't fool lockdep in freeze_super() and thaw_super() paths
fs/super.c: fix race between freeze_super() and thaw_super()
overlayfs: Fix setting IOP_XATTR flag
iov_iter: kernel-doc import_iovec() and rw_copy_check_uvector()
blackfin: no access_ok() for __copy_{to,from}_user()
arm64: don't zero in __copy_from_user{,_inatomic}
arm: don't zero in __copy_from_user_inatomic()/__copy_from_user()
arc: don't leak bits of kernel stack into coredump
alpha: get rid of tail-zeroing in __copy_user()
Diffstat (limited to 'arch/alpha/lib')
-rw-r--r-- | arch/alpha/lib/copy_user.S | 16 | ||||
-rw-r--r-- | arch/alpha/lib/ev6-copy_user.S | 23 |
2 files changed, 2 insertions, 37 deletions
diff --git a/arch/alpha/lib/copy_user.S b/arch/alpha/lib/copy_user.S index 2238068b1b40..509f62b65311 100644 --- a/arch/alpha/lib/copy_user.S +++ b/arch/alpha/lib/copy_user.S | |||
@@ -126,22 +126,8 @@ $65: | |||
126 | bis $31,$31,$0 | 126 | bis $31,$31,$0 |
127 | $41: | 127 | $41: |
128 | $35: | 128 | $35: |
129 | $exitout: | ||
130 | ret $31,($28),1 | ||
131 | |||
132 | $exitin: | 129 | $exitin: |
133 | /* A stupid byte-by-byte zeroing of the rest of the output | 130 | $exitout: |
134 | buffer. This cures security holes by never leaving | ||
135 | random kernel data around to be copied elsewhere. */ | ||
136 | |||
137 | mov $0,$1 | ||
138 | $101: | ||
139 | EXO ( ldq_u $2,0($6) ) | ||
140 | subq $1,1,$1 | ||
141 | mskbl $2,$6,$2 | ||
142 | EXO ( stq_u $2,0($6) ) | ||
143 | addq $6,1,$6 | ||
144 | bgt $1,$101 | ||
145 | ret $31,($28),1 | 131 | ret $31,($28),1 |
146 | 132 | ||
147 | .end __copy_user | 133 | .end __copy_user |
diff --git a/arch/alpha/lib/ev6-copy_user.S b/arch/alpha/lib/ev6-copy_user.S index debcc3b6b704..be720b518af9 100644 --- a/arch/alpha/lib/ev6-copy_user.S +++ b/arch/alpha/lib/ev6-copy_user.S | |||
@@ -228,33 +228,12 @@ $dirtyentry: | |||
228 | bgt $0,$onebyteloop # U .. .. .. : U L U L | 228 | bgt $0,$onebyteloop # U .. .. .. : U L U L |
229 | 229 | ||
230 | $zerolength: | 230 | $zerolength: |
231 | $exitin: | ||
231 | $exitout: # Destination for exception recovery(?) | 232 | $exitout: # Destination for exception recovery(?) |
232 | nop # .. .. .. E | 233 | nop # .. .. .. E |
233 | nop # .. .. E .. | 234 | nop # .. .. E .. |
234 | nop # .. E .. .. | 235 | nop # .. E .. .. |
235 | ret $31,($28),1 # L0 .. .. .. : L U L U | 236 | ret $31,($28),1 # L0 .. .. .. : L U L U |
236 | 237 | ||
237 | $exitin: | ||
238 | |||
239 | /* A stupid byte-by-byte zeroing of the rest of the output | ||
240 | buffer. This cures security holes by never leaving | ||
241 | random kernel data around to be copied elsewhere. */ | ||
242 | |||
243 | nop | ||
244 | nop | ||
245 | nop | ||
246 | mov $0,$1 | ||
247 | |||
248 | $101: | ||
249 | EXO ( stb $31,0($6) ) # L | ||
250 | subq $1,1,$1 # E | ||
251 | addq $6,1,$6 # E | ||
252 | bgt $1,$101 # U | ||
253 | |||
254 | nop | ||
255 | nop | ||
256 | nop | ||
257 | ret $31,($28),1 # L0 | ||
258 | |||
259 | .end __copy_user | 238 | .end __copy_user |
260 | EXPORT_SYMBOL(__copy_user) | 239 | EXPORT_SYMBOL(__copy_user) |