Merge branch 'mainstream'
[sliver-openvswitch.git] / lib / netdev.c
index 0e8ec58..c70105b 100644 (file)
@@ -109,6 +109,8 @@ netdev_initialize(void)
         netdev_register_provider(&netdev_tap_class);
         netdev_register_provider(&netdev_bsd_class);
 #endif
+        netdev_register_provider(&netdev_tunnel_class);
+        netdev_register_provider(&netdev_pltap_class);
 
         ovsthread_once_done(&once);
     }
@@ -328,6 +330,9 @@ netdev_open(const char *name, const char *type, struct netdev **netdevp)
 
                     atomic_add(&rc->ref_cnt, 1, &old_ref_cnt);
                 } else {
+                    free(netdev->name);
+                    ovs_assert(list_is_empty(&netdev->saved_flags_list));
+                    shash_delete(&netdev_shash, netdev->node);
                     rc->class->dealloc(netdev);
                 }
             } else {