bitops: use the same mechanism for get_count_order[_long]
authorWei Yang <richard.weiyang@linux.alibaba.com>
Fri, 16 Oct 2020 03:11:46 +0000 (20:11 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 16 Oct 2020 18:11:20 +0000 (11:11 -0700)
These two functions share the same logic.

Signed-off-by: Wei Yang <richard.weiyang@linux.alibaba.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lkml.kernel.org/r/20200807085837.11697-3-richard.weiyang@linux.alibaba.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/bitops.h

index 030a98f..5b74bdf 100644 (file)
@@ -188,12 +188,10 @@ static inline unsigned fls_long(unsigned long l)
 
 static inline int get_count_order(unsigned int count)
 {
-       int order;
+       if (count == 0)
+               return -1;
 
-       order = fls(count) - 1;
-       if (count & (count - 1))
-               order++;
-       return order;
+       return fls(--count);
 }
 
 /**