diff options
author | Wei Yang <richard.weiyang@linux.alibaba.com> | 2020-10-15 20:11:46 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-10-16 11:11:20 -0700 |
commit | 004fba1ae6ddd66ba0faa4f60c603b3ca77b3554 (patch) | |
tree | 1b15c0194dbed57658e6588f0d83a49137f61235 /include/linux/bitops.h | |
parent | a9eb63705e379f10a3c9d13fc6aee8b50805e862 (diff) |
bitops: use the same mechanism for get_count_order[_long]
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>
Diffstat (limited to 'include/linux/bitops.h')
-rw-r--r-- | include/linux/bitops.h | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 030a98f0c452..5b74bdf159d6 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -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); } /** |