|
@@ -65,16 +65,6 @@ static inline int get_bitmask_order(unsigned int count)
|
|
|
return order; /* We could be slightly more clever with -1 here... */
|
|
|
}
|
|
|
|
|
|
-static inline int get_count_order(unsigned int count)
|
|
|
-{
|
|
|
- int order;
|
|
|
-
|
|
|
- order = fls(count) - 1;
|
|
|
- if (count & (count - 1))
|
|
|
- order++;
|
|
|
- return order;
|
|
|
-}
|
|
|
-
|
|
|
static __always_inline unsigned long hweight_long(unsigned long w)
|
|
|
{
|
|
|
return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
|
|
@@ -191,6 +181,32 @@ static inline unsigned fls_long(unsigned long l)
|
|
|
return fls64(l);
|
|
|
}
|
|
|
|
|
|
+static inline int get_count_order(unsigned int count)
|
|
|
+{
|
|
|
+ int order;
|
|
|
+
|
|
|
+ order = fls(count) - 1;
|
|
|
+ if (count & (count - 1))
|
|
|
+ order++;
|
|
|
+ return order;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * get_count_order_long - get order after rounding @l up to power of 2
|
|
|
+ * @l: parameter
|
|
|
+ *
|
|
|
+ * it is same as get_count_order() but with long type parameter
|
|
|
+ */
|
|
|
+static inline int get_count_order_long(unsigned long l)
|
|
|
+{
|
|
|
+ if (l == 0UL)
|
|
|
+ return -1;
|
|
|
+ else if (l & (l - 1UL))
|
|
|
+ return (int)fls_long(l);
|
|
|
+ else
|
|
|
+ return (int)fls_long(l) - 1;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* __ffs64 - find first set bit in a 64 bit word
|
|
|
* @word: The 64 bit word
|