summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScotty Bauer <sbauer@eng.utah.edu>2014-10-09 15:30:26 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-09 22:26:04 -0400
commit0baae41ea8365a7b5a34c6474a77d7eb1126f6b2 (patch)
treed923df01089d7b360f226c19ac7230c216a45a4b
parentec94fc3d59b54561da03a0e433d93217b08c1481 (diff)
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 <sbauer@eng.utah.edu> Cc: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--kernel/sys.c2
1 files changed, 1 insertions, 1 deletions
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) {