kernel/kfifo.c: replace conditional test with is_power_of_2()
[sfrench/cifs-2.6.git] / kernel / kfifo.c
index cee419143fd47bb410b0cf80e7762a0f02ffbfce..26539e3228e50f81ca892122a23b6bd1fcf98fe6 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/slab.h>
 #include <linux/err.h>
 #include <linux/kfifo.h>
+#include <linux/log2.h>
 
 /**
  * kfifo_init - allocates a new FIFO using a preallocated buffer
@@ -41,7 +42,7 @@ struct kfifo *kfifo_init(unsigned char *buffer, unsigned int size,
        struct kfifo *fifo;
 
        /* size must be a power of 2 */
-       BUG_ON(size & (size - 1));
+       BUG_ON(!is_power_of_2(size));
 
        fifo = kmalloc(sizeof(struct kfifo), gfp_mask);
        if (!fifo)
@@ -71,9 +72,9 @@ struct kfifo *kfifo_alloc(unsigned int size, gfp_t gfp_mask, spinlock_t *lock)
 
        /*
         * round up to the next power of 2, since our 'let the indices
-        * wrap' tachnique works only in this case.
+        * wrap' technique works only in this case.
         */
-       if (size & (size - 1)) {
+       if (!is_power_of_2(size)) {
                BUG_ON(size > 0x80000000);
                size = roundup_pow_of_two(size);
        }