diff options
author | Nicolas Pitre <nico@cam.org> | 2006-01-14 11:35:03 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-14 11:35:03 -0500 |
commit | 713c481519f19df9e6d90f257e7da0336b057592 (patch) | |
tree | b8242d9f1b94f94a7075a021a3f80ddf0c0de25c /arch/arm/kernel/entry-common.S | |
parent | 704bdda03827db8a551e82b312037d63ba3c22ff (diff) |
[ARM] 3108/2: old ABI compat: statfs64 and fstatfs64
Patch from Nicolas Pitre
struct statfs64 has extra padding with EABI growing its size from 84 to
88. This struct is now __attribute__((packed,aligned(4))) with a small
assembly wrapper to force the sz argument to 84 if it is 88 to avoid
copying the extra padding over user space memory unexpecting it.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-common.S')
-rw-r--r-- | arch/arm/kernel/entry-common.S | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 34826bcceb7a..ee63ee78d84f 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -262,6 +262,16 @@ sys_sigaltstack_wrapper: | |||
262 | ldr r2, [sp, #S_OFF + S_SP] | 262 | ldr r2, [sp, #S_OFF + S_SP] |
263 | b do_sigaltstack | 263 | b do_sigaltstack |
264 | 264 | ||
265 | sys_statfs64_wrapper: | ||
266 | teq r1, #88 | ||
267 | moveq r1, #84 | ||
268 | b sys_statfs64 | ||
269 | |||
270 | sys_fstatfs64_wrapper: | ||
271 | teq r1, #88 | ||
272 | moveq r1, #84 | ||
273 | b sys_fstatfs64 | ||
274 | |||
265 | /* | 275 | /* |
266 | * Note: off_4k (r5) is always units of 4K. If we can't do the requested | 276 | * Note: off_4k (r5) is always units of 4K. If we can't do the requested |
267 | * offset, we return EINVAL. | 277 | * offset, we return EINVAL. |