X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fiface-env-inject.c;h=af8ff6d3f072a7fbc3206d85c02c4ec320dac596;hb=4b7f19c51325601d7e7569e6101c7bfcdf984ef7;hp=7fcc6521e1e84045b6cfc20ef6282cdda15d89d2;hpb=791ea2f3e21cfbc9c47341efbb98995c33d86fcb;p=palacios.git diff --git a/linux_module/iface-env-inject.c b/linux_module/iface-env-inject.c index 7fcc652..af8ff6d 100644 --- a/linux_module/iface-env-inject.c +++ b/linux_module/iface-env-inject.c @@ -6,7 +6,6 @@ */ #include -#include #include @@ -37,11 +36,11 @@ static void free_inject_data (void) { for(i = 0; i < MAX_ENV_INJECT; i++) { if (env_map[i]) { - for (j = 0; j < env_map[i]->num_strings; j++) - kfree(env_map[i]->strings[j]); - - kfree(env_map[i]->strings); - kfree(env_map[i]); + for (j = 0; j < env_map[i]->num_strings; j++) { + palacios_free(env_map[i]->strings[j]); + } + palacios_free(env_map[i]->strings); + palacios_free(env_map[i]); } } } @@ -59,8 +58,8 @@ static int vm_env_inject (struct v3_guest * guest, unsigned int cmd, unsigned lo return -EFAULT; } - env = kmalloc(sizeof(struct env_data), GFP_KERNEL); - if (IS_ERR(env)) { + env = palacios_alloc(sizeof(struct env_data)); + if (!env) { ERROR("Palacios Error: could not allocate space for environment data\n"); return -EFAULT; } @@ -73,8 +72,8 @@ static int vm_env_inject (struct v3_guest * guest, unsigned int cmd, unsigned lo DEBUG("Binary hooked on: %s\n", env->bin_name); //DEBUG("Palacios: Allocating space for %u env var string ptrs...\n", env->num_strings); - env->strings = kmalloc(env->num_strings*sizeof(char*), GFP_KERNEL); - if (IS_ERR(env->strings)) { + env->strings = palacios_alloc(env->num_strings*sizeof(char*)); + if (!(env->strings)) { ERROR("Palacios Error: could not allocate space for env var strings\n"); return -EFAULT; } @@ -87,8 +86,8 @@ static int vm_env_inject (struct v3_guest * guest, unsigned int cmd, unsigned lo } for (i = 0; i < env->num_strings; i++) { - char * tmp = kmalloc(MAX_STRING_LEN, GFP_KERNEL); - if (IS_ERR(tmp)) { + char * tmp = palacios_alloc(MAX_STRING_LEN); + if (!(tmp)) { ERROR("Palacios Error: could not allocate space for env var string #%d\n", i); return -EFAULT; } @@ -133,6 +132,7 @@ static int guest_init_env_inject (struct v3_guest * guest, void ** vm_data) { static int guest_deinit_env_inject (struct v3_guest * guest, void * vm_data) { free_inject_data(); + remove_guest_ctrl(guest, V3_VM_ENV_INJECT); return 0; }