From: Christian Borntraeger <cborntra@de.ibm.com>
Date: Mon, 7 Nov 2005 08:59:07 +0000 (-0800)
Subject: [PATCH] s390: test_bit return value
X-Git-Tag: firefly_0821_release~40768
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=187dfc67b461058bbb84a923a17871ed54e10f30;p=firefly-linux-kernel-4.4.55.git

[PATCH] s390: test_bit return value

The test_bit function returns a non-boolean value, it returns 0,1,2,4,...
instead of only 0 or 1.  This causes wrongs results in the mincore system
call.  Check against 0 to get a proper boolean value.

Signed-off-by: Christian Borntraeger <cborntra@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---

diff --git a/include/asm-s390/bitops.h b/include/asm-s390/bitops.h
index 8651524217fd..b07c578b22ea 100644
--- a/include/asm-s390/bitops.h
+++ b/include/asm-s390/bitops.h
@@ -518,8 +518,8 @@ static inline int __test_bit(unsigned long nr, const volatile unsigned long *ptr
 
 static inline int 
 __constant_test_bit(unsigned long nr, const volatile unsigned long *addr) {
-    return (((volatile char *) addr)
-	    [(nr^(__BITOPS_WORDSIZE-8))>>3] & (1<<(nr&7)));
+    return ((((volatile char *) addr)
+	    [(nr^(__BITOPS_WORDSIZE-8))>>3] & (1<<(nr&7)))) != 0;
 }
 
 #define test_bit(nr,addr) \