+static void
+netdev_pltap_destruct(struct netdev *netdev_)
+{
+ struct netdev_pltap *netdev = netdev_pltap_cast(netdev_);
+
+ ovs_mutex_lock(&pltap_netdevs_mutex);
+ if (netdev->fd != -1)
+ close(netdev->fd);
+
+ if (netdev->sync_flags_needed) {
+ ovs_mutex_lock(&sync_list_mutex);
+ (void) list_remove(&netdev->sync_list);
+ ovs_mutex_unlock(&sync_list_mutex);
+ }
+
+ shash_find_and_delete(&pltap_netdevs,
+ netdev_get_name(netdev_));
+ ovs_mutex_unlock(&pltap_netdevs_mutex);
+ ovs_mutex_destroy(&netdev->mutex);