X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Futil-queue.c;h=f7f6146a728141129869502cab64e5acb240a83a;hb=b8fb74a295ebc2697876ac81f2b00628503a3822;hp=ee32439beab5543face00ca7cf43e01057357998;hpb=95908965b5963c53a40e9eae8ad0307a2bc27434;p=palacios.git diff --git a/linux_module/util-queue.c b/linux_module/util-queue.c index ee32439..f7f6146 100644 --- a/linux_module/util-queue.c +++ b/linux_module/util-queue.c @@ -1,10 +1,11 @@ /* - * Queue implementation - * Jack Lange 2011 - */ + * Queue implementation + * Jack Lange 2011 + */ #include +#include "palacios.h" #include "util-queue.h" void init_queue(struct gen_queue * queue, unsigned int max_entries) { @@ -16,7 +17,11 @@ void init_queue(struct gen_queue * queue, unsigned int max_entries) { } struct gen_queue * create_queue(unsigned int max_entries) { - struct gen_queue * tmp_queue = kmalloc(sizeof(struct gen_queue), GFP_KERNEL); + struct gen_queue * tmp_queue = palacios_alloc(sizeof(struct gen_queue)); + if (!tmp_queue) { + ERROR("Unable to allocate a queue\n"); + return NULL; + } init_queue(tmp_queue, max_entries); return tmp_queue; } @@ -29,7 +34,12 @@ int enqueue(struct gen_queue * queue, void * entry) { return -1; } - q_entry = kmalloc(sizeof(struct queue_entry), GFP_KERNEL); + q_entry = palacios_alloc(sizeof(struct queue_entry)); + + if (!q_entry) { + ERROR("Unable to allocate a queue entry on enqueue\n"); + return -1; + } spin_lock_irqsave(&(queue->lock), flags); @@ -55,7 +65,7 @@ void * dequeue(struct gen_queue * queue) { entry_val = tmp_entry->entry; list_del(q_entry); - kfree(tmp_entry); + palacios_free(tmp_entry); queue->num_entries--;