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 @@ | |||
13 | #include <linux/bitops.h> | 13 | #include <linux/bitops.h> |
14 | #include <linux/bug.h> | 14 | #include <linux/bug.h> |
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/slab.h> | ||
16 | #include <linux/string.h> | 17 | #include <linux/string.h> |
17 | #include <linux/uaccess.h> | 18 | #include <linux/uaccess.h> |
18 | 19 | ||
@@ -1128,6 +1129,25 @@ void bitmap_copy_le(unsigned long *dst, const unsigned long *src, unsigned int n | |||
1128 | EXPORT_SYMBOL(bitmap_copy_le); | 1129 | EXPORT_SYMBOL(bitmap_copy_le); |
1129 | #endif | 1130 | #endif |
1130 | 1131 | ||
1132 | unsigned long *bitmap_alloc(unsigned int nbits, gfp_t flags) | ||
1133 | { | ||
1134 | return kmalloc_array(BITS_TO_LONGS(nbits), sizeof(unsigned long), | ||
1135 | flags); | ||
1136 | } | ||
1137 | EXPORT_SYMBOL(bitmap_alloc); | ||
1138 | |||
1139 | unsigned long *bitmap_zalloc(unsigned int nbits, gfp_t flags) | ||
1140 | { | ||
1141 | return bitmap_alloc(nbits, flags | __GFP_ZERO); | ||
1142 | } | ||
1143 | EXPORT_SYMBOL(bitmap_zalloc); | ||
1144 | |||
1145 | void bitmap_free(const unsigned long *bitmap) | ||
1146 | { | ||
1147 | kfree(bitmap); | ||
1148 | } | ||
1149 | EXPORT_SYMBOL(bitmap_free); | ||
1150 | |||
1131 | #if BITS_PER_LONG == 64 | 1151 | #if BITS_PER_LONG == 64 |
1132 | /** | 1152 | /** |
1133 | * bitmap_from_arr32 - copy the contents of u32 array of bits to bitmap | 1153 | * bitmap_from_arr32 - copy the contents of u32 array of bits to bitmap |