From: Scotty Bauer Date: Thu, 9 Oct 2014 22:30:26 +0000 (-0700) Subject: kernel/sys.c: compat sysinfo syscall: fix undefined behavior X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=0baae41ea8365a7b5a34c6474a77d7eb1126f6b2;p=openwrt%2Fstaging%2Fblogic.git kernel/sys.c: compat sysinfo syscall: fix undefined behavior Fix undefined behavior and compiler warning by replacing right shift 32 with upper_32_bits macro Signed-off-by: Scotty Bauer Cc: Clemens Ladisch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/sys.c b/kernel/sys.c index 037fd76bdc76..dfce4debd138 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -2330,7 +2330,7 @@ COMPAT_SYSCALL_DEFINE1(sysinfo, struct compat_sysinfo __user *, info) /* Check to see if any memory value is too large for 32-bit and scale * down if needed */ - if ((s.totalram >> 32) || (s.totalswap >> 32)) { + if (upper_32_bits(s.totalram) || upper_32_bits(s.totalswap)) { int bitcount = 0; while (s.mem_unit < PAGE_SIZE) {