Add kmalloc failover to vmalloc
[lttng-modules.git] / lib / prio_heap / lttng_prio_heap.c
index 6db7f524008c332dfa426f5dbf7c8a5d4b9361b7..01ed69f2cac1a52b62a794e22ca5a43f20a798b9 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <linux/slab.h>
 #include <lib/prio_heap/lttng_prio_heap.h>
+#include <wrapper/vmalloc.h>
 
 #ifdef DEBUG_HEAP
 void lttng_check_heap(const struct lttng_ptr_heap *heap)
@@ -70,12 +71,12 @@ int heap_grow(struct lttng_ptr_heap *heap, size_t new_len)
                return 0;
 
        heap->alloc_len = max_t(size_t, new_len, heap->alloc_len << 1);
-       new_ptrs = kmalloc(heap->alloc_len * sizeof(void *), heap->gfpmask);
+       new_ptrs = lttng_kvmalloc(heap->alloc_len * sizeof(void *), heap->gfpmask);
        if (!new_ptrs)
                return -ENOMEM;
        if (heap->ptrs)
                memcpy(new_ptrs, heap->ptrs, heap->len * sizeof(void *));
-       kfree(heap->ptrs);
+       lttng_kvfree(heap->ptrs);
        heap->ptrs = new_ptrs;
        return 0;
 }
@@ -109,7 +110,7 @@ int lttng_heap_init(struct lttng_ptr_heap *heap, size_t alloc_len,
 
 void lttng_heap_free(struct lttng_ptr_heap *heap)
 {
-       kfree(heap->ptrs);
+       lttng_kvfree(heap->ptrs);
 }
 
 static void heapify(struct lttng_ptr_heap *heap, size_t i)
This page took 0.023455 seconds and 4 git commands to generate.