X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Futil-ringbuffer.c;h=9d0935db605a28aa4ebc88979228876cf31f1398;hb=2cb41f7db5b9f89113432d6b3daff4807ba8e5f2;hp=d52d25d827cc9e5c9c15ba9e88cf81e1353f03d9;hpb=1d5e0fcea2007c9f068cded1e98d17c80a306a19;p=palacios.git diff --git a/linux_module/util-ringbuffer.c b/linux_module/util-ringbuffer.c index d52d25d..9d0935d 100644 --- a/linux_module/util-ringbuffer.c +++ b/linux_module/util-ringbuffer.c @@ -12,7 +12,13 @@ #include "util-ringbuffer.h" void init_ringbuf(struct ringbuf * ring, unsigned int size) { - ring->buf = kmalloc(size, GFP_KERNEL); + ring->buf = palacios_alloc(size); + + if (!(ring->buf)) { + ERROR("Cannot allocate ring buffer data\n"); + size=0; + } + ring->size = size; ring->start = 0; @@ -21,15 +27,21 @@ void init_ringbuf(struct ringbuf * ring, unsigned int size) { } struct ringbuf * create_ringbuf(unsigned int size) { - struct ringbuf * ring = (struct ringbuf *)kmalloc(sizeof(struct ringbuf), GFP_KERNEL); + struct ringbuf * ring = (struct ringbuf *)palacios_alloc(sizeof(struct ringbuf)); + + if (!ring) { + ERROR("Cannot allocate ring buffer\n"); + return NULL; + } + init_ringbuf(ring, size); return ring; } void free_ringbuf(struct ringbuf * ring) { - kfree(ring->buf); - kfree(ring); + palacios_free(ring->buf); + palacios_free(ring); } static inline unsigned char * get_read_ptr(struct ringbuf * ring) {