From: Ralf Baechle Date: Wed, 1 Apr 2009 17:23:38 +0000 (-0600) Subject: MIPS: Compat: Zero upper 32-bit of offset_high and offset_low. X-Git-Tag: v2.6.29.2~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e76f9b67d8fac994e736449722b81923525823ea;p=thirdparty%2Fkernel%2Fstable.git MIPS: Compat: Zero upper 32-bit of offset_high and offset_low. upstream commit: d6c178e9694e7e0c7ffe0289cf4389a498cac735 Through sys_llseek() arguably should do exactly that it doesn't which means llseek(2) will fail for o32 processes if offset_low has bit 31 set. As suggested by Heiko Carstens. Signed-off-by: Ralf Baechle Signed-off-by: Chris Wright --- diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index 1a86f84fa9470..5abcc7f93e2f5 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c @@ -134,9 +134,9 @@ SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy, return sys_ftruncate(fd, merge_64(a2, a3)); } -SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high, - unsigned long, offset_low, loff_t __user *, result, - unsigned long, origin) +SYSCALL_DEFINE5(32_llseek, unsigned int, fd, unsigned int, offset_high, + unsigned int, offset_low, loff_t __user *, result, + unsigned int, origin) { return sys_llseek(fd, offset_high, offset_low, result, origin); }