Be sure to use internal __ffs, not glibc variant
authorJens Axboe <jens.axboe@oracle.com>
Mon, 2 Jun 2008 07:57:41 +0000 (09:57 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Mon, 2 Jun 2008 07:57:41 +0000 (09:57 +0200)
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
lib/ffz.h

index 4324f5a3c67b378b93bda2201c937164f5d43477..e17a2e9c0a1e7cd60f3e99b8989ecc61bebed806 100644 (file)
--- a/lib/ffz.h
+++ b/lib/ffz.h
@@ -3,7 +3,7 @@
 
 static inline int __ffs(int word)
 {
 
 static inline int __ffs(int word)
 {
-       int r = 1;
+       int r = 0;
 
        if (!(word & 0xffff)) {
                word >>= 16;
 
        if (!(word & 0xffff)) {
                word >>= 16;
@@ -31,7 +31,7 @@ static inline int __ffs(int word)
 
 static inline int ffz(unsigned int bitmask)
 {
 
 static inline int ffz(unsigned int bitmask)
 {
-       return ffs(~bitmask) - 1;
+       return __ffs(~bitmask);
 }
 
 #endif
 }
 
 #endif