diff options
Diffstat (limited to 'lib/bitmap.c')
| -rw-r--r-- | lib/bitmap.c | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/bitmap.c b/lib/bitmap.c index a42eff7e8c48..5b476d8414be 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -13,6 +13,7 @@  #include <linux/bitops.h>  #include <linux/bug.h>  #include <linux/kernel.h> +#include <linux/slab.h>  #include <linux/string.h>  #include <linux/uaccess.h> @@ -1128,6 +1129,25 @@ void bitmap_copy_le(unsigned long *dst, const unsigned long *src, unsigned int n  EXPORT_SYMBOL(bitmap_copy_le);  #endif +unsigned long *bitmap_alloc(unsigned int nbits, gfp_t flags) +{ +	return kmalloc_array(BITS_TO_LONGS(nbits), sizeof(unsigned long), +			     flags); +} +EXPORT_SYMBOL(bitmap_alloc); + +unsigned long *bitmap_zalloc(unsigned int nbits, gfp_t flags) +{ +	return bitmap_alloc(nbits, flags | __GFP_ZERO); +} +EXPORT_SYMBOL(bitmap_zalloc); + +void bitmap_free(const unsigned long *bitmap) +{ +	kfree(bitmap); +} +EXPORT_SYMBOL(bitmap_free); +  #if BITS_PER_LONG == 64  /**   * bitmap_from_arr32 - copy the contents of u32 array of bits to bitmap  |