[PATCH] s390: test_bit return value
authorChristian Borntraeger <cborntra@de.ibm.com>
Mon, 7 Nov 2005 08:59:07 +0000 (00:59 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 7 Nov 2005 15:53:34 +0000 (07:53 -0800)
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>
include/asm-s390/bitops.h

index 8651524217fde5108f6e5ded6ba1f4c4e5100f2c..b07c578b22ea677d55f9bf147d8791a18c75a20e 100644 (file)
@@ -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) \