|
@@ -5,7 +5,7 @@
|
|
|
* Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
|
|
|
*/
|
|
|
|
|
|
-#include <linux/slab.h>
|
|
|
+#include <linux/vmalloc.h>
|
|
|
#include <linux/bitops.h>
|
|
|
#include "idset.h"
|
|
|
#include "css.h"
|
|
@@ -25,18 +25,18 @@ static struct idset *idset_new(int num_ssid, int num_id)
|
|
|
{
|
|
|
struct idset *set;
|
|
|
|
|
|
- set = kzalloc(sizeof(struct idset) + bitmap_size(num_ssid, num_id),
|
|
|
- GFP_KERNEL);
|
|
|
+ set = vmalloc(sizeof(struct idset) + bitmap_size(num_ssid, num_id));
|
|
|
if (set) {
|
|
|
set->num_ssid = num_ssid;
|
|
|
set->num_id = num_id;
|
|
|
+ memset(set->bitmap, 0, bitmap_size(num_ssid, num_id));
|
|
|
}
|
|
|
return set;
|
|
|
}
|
|
|
|
|
|
void idset_free(struct idset *set)
|
|
|
{
|
|
|
- kfree(set);
|
|
|
+ vfree(set);
|
|
|
}
|
|
|
|
|
|
void idset_clear(struct idset *set)
|