X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lib%2Fprio_heap%2Flttng_prio_heap.c;h=01ed69f2cac1a52b62a794e22ca5a43f20a798b9;hb=872fce6c1b85cb5f3792179493f4a770c0e9e434;hp=5bbd0793b8a6d5ca2a7a57772a88de9bc5eac934;hpb=a88db0185693b52123f541fb19a79d1d23f563a4;p=lttng-modules.git diff --git a/lib/prio_heap/lttng_prio_heap.c b/lib/prio_heap/lttng_prio_heap.c index 5bbd0793..01ed69f2 100644 --- a/lib/prio_heap/lttng_prio_heap.c +++ b/lib/prio_heap/lttng_prio_heap.c @@ -14,10 +14,19 @@ * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ #include -#include "lttng_prio_heap.h" +#include +#include #ifdef DEBUG_HEAP void lttng_check_heap(const struct lttng_ptr_heap *heap) @@ -62,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; } @@ -91,6 +100,7 @@ int lttng_heap_init(struct lttng_ptr_heap *heap, size_t alloc_len, heap->len = 0; heap->alloc_len = 0; heap->gt = gt; + heap->gfpmask = gfpmask; /* * Minimum size allocated is 1 entry to ensure memory allocation * never fails within heap_replace_max. @@ -100,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)