summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorWei Yang <richard.weiyang@linux.alibaba.com>2020-10-16 06:11:46 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2020-10-16 21:11:20 +0300
commit004fba1ae6ddd66ba0faa4f60c603b3ca77b3554 (patch)
tree1b15c0194dbed57658e6588f0d83a49137f61235 /include/linux
parenta9eb63705e379f10a3c9d13fc6aee8b50805e862 (diff)
downloadlinux-004fba1ae6ddd66ba0faa4f60c603b3ca77b3554.tar.xz
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')
-rw-r--r--include/linux/bitops.h8
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);
}
/**