]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/cio/idset.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen...
[linux-2.6-omap-h63xx.git] / drivers / s390 / cio / idset.c
index 16ea828e99f7a0b39228cda81f78247348e01966..cf8f24a4b5ebf7e4e0cba41ebfa4a6060730f1f8 100644 (file)
@@ -5,8 +5,8 @@
  *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
 
-#include <linux/slab.h>
-#include <asm/bitops.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)