X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fpalacios-vnet-ctrl.c;h=6dae6bbf7730736448ba7a0162dbbe840ff9aa7a;hb=c8b23e99efde3aa5a2c26d1b8e9bc7dc914e6113;hp=723dccd971a2e186fa86e67d665079935602438d;hpb=af11d9f15d9f8061aec0e7752a5497e2df28c7ff;p=palacios.git diff --git a/linux_module/palacios-vnet-ctrl.c b/linux_module/palacios-vnet-ctrl.c index 723dccd..6dae6bb 100644 --- a/linux_module/palacios-vnet-ctrl.c +++ b/linux_module/palacios-vnet-ctrl.c @@ -544,10 +544,10 @@ static int inject_route(struct vnet_route_iter * route) { route->idx = v3_vnet_add_route(route->route); - spin_lock_irqsave(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_lock_irqsave(&(vnet_ctrl_s.lock), flags); list_add(&(route->node), &(vnet_ctrl_s.route_list)); vnet_ctrl_s.num_routes ++; - spin_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); INFO("VNET Control: One route added to VNET core\n"); @@ -560,10 +560,10 @@ static void delete_route(struct vnet_route_iter * route) { v3_vnet_del_route(route->idx); - spin_lock_irqsave(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_lock_irqsave(&(vnet_ctrl_s.lock), flags); list_del(&(route->node)); vnet_ctrl_s.num_routes --; - spin_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); INFO("VNET Control: Route %d deleted from VNET\n", route->idx); @@ -672,10 +672,10 @@ static void delete_link(struct vnet_link_iter * link){ vnet_brg_delete_link(link->idx); - spin_lock_irqsave(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_lock_irqsave(&(vnet_ctrl_s.lock), flags); list_del(&(link->node)); vnet_ctrl_s.num_links --; - spin_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); palacios_free(link); link = NULL; @@ -768,10 +768,10 @@ link_write(struct file * file, const char * buf, size_t size, loff_t * ppos) { link->proto = d_proto; link->idx = link_idx; - spin_lock_irqsave(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_lock_irqsave(&(vnet_ctrl_s.lock), flags); list_add(&(link->node), &(vnet_ctrl_s.link_iter_list)); vnet_ctrl_s.num_links ++; - spin_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); + palacios_spinlock_unlock_irqrestore(&(vnet_ctrl_s.lock), flags); } else if (strnicmp("DEL", token, strlen("DEL")) == 0) { char * idx_str = NULL; uint32_t d_idx; @@ -925,34 +925,33 @@ static int init_proc_files(void) { return -1; } - route_entry = create_proc_entry("routes", 0, vnet_root); + + PAL_PROC_CREATE(route_entry,"routes",0644, vnet_root,&route_fops); + if (route_entry == NULL) { remove_proc_entry("vnet", NULL); return -1; } - route_entry->proc_fops = &route_fops; + PAL_PROC_CREATE(link_entry,"links", 0644, vnet_root,&link_fops); - link_entry = create_proc_entry("links", 0, vnet_root); if (link_entry == NULL) { remove_proc_entry("routes", vnet_root); remove_proc_entry("vnet", NULL); return -1; } - link_entry->proc_fops = &link_fops; - - stat_entry = create_proc_entry("stats", 0, vnet_root); + PAL_PROC_CREATE(stat_entry,"stats", 0644, vnet_root, &stat_fops); + if(stat_entry == NULL) { remove_proc_entry("links", vnet_root); remove_proc_entry("routes", vnet_root); remove_proc_entry("vnet", NULL); return -1; } - stat_entry->proc_fops = &stat_fops; + PAL_PROC_CREATE(debug_entry,"debug", 0644, vnet_root,&debug_fops); - debug_entry = create_proc_entry("debug", 0, vnet_root); if(debug_entry == NULL) { remove_proc_entry("links", vnet_root); remove_proc_entry("routes", vnet_root); @@ -960,7 +959,6 @@ static int init_proc_files(void) { remove_proc_entry("vnet", NULL); return -1; } - debug_entry->proc_fops = &debug_fops; vnet_ctrl_s.vnet_proc_root = vnet_root; @@ -975,7 +973,7 @@ static void destroy_proc_files(void) { remove_proc_entry("links", vnet_root); remove_proc_entry("routes", vnet_root); remove_proc_entry("stats", vnet_root); - remove_proc_entry("vnet", NULL); + remove_proc_entry("vnet", palacios_get_procdir()); } @@ -989,7 +987,7 @@ int vnet_ctrl_init(void) { INIT_LIST_HEAD(&(vnet_ctrl_s.link_iter_list)); INIT_LIST_HEAD(&(vnet_ctrl_s.route_list)); - spin_lock_init(&(vnet_ctrl_s.lock)); + palacios_spinlock_init(&(vnet_ctrl_s.lock)); init_proc_files(); @@ -1010,6 +1008,8 @@ void vnet_ctrl_deinit(void){ vnet_ctrl_s.status = 0; + palacios_spinlock_deinit(&(vnet_ctrl_s.lock)); + INFO("VNET Control Deinit Finished\n"); }