]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/lightnvm/pblk-gc.c
lightnvm: pblk: use vmalloc for GC data buffer
[linux.git] / drivers / lightnvm / pblk-gc.c
index 9b4059b93855d702f956a3ec4e0a46fd849141a5..6090d28f7995a51f4d5972bf965457f1388874f7 100644 (file)
@@ -20,7 +20,7 @@
 
 static void pblk_gc_free_gc_rq(struct pblk_gc_rq *gc_rq)
 {
-       kfree(gc_rq->data);
+       vfree(gc_rq->data);
        kfree(gc_rq);
 }
 
@@ -72,7 +72,7 @@ static int pblk_gc_move_valid_secs(struct pblk *pblk, struct pblk_gc_rq *gc_rq)
        unsigned int secs_to_gc;
        int ret = 0;
 
-       data = kmalloc(gc_rq->nr_secs * geo->sec_size, GFP_KERNEL);
+       data = vmalloc(gc_rq->nr_secs * geo->sec_size);
        if (!data) {
                ret = -ENOMEM;
                goto out;
@@ -110,7 +110,7 @@ static int pblk_gc_move_valid_secs(struct pblk *pblk, struct pblk_gc_rq *gc_rq)
 free_rq:
        kfree(gc_rq);
 free_data:
-       kfree(data);
+       vfree(data);
 out:
        kref_put(&line->ref, pblk_line_put);
        return ret;