return err;
}
-static void vport_del_all(void)
-{
- int i;
-
- rtnl_lock();
- vport_lock();
-
- for (i = 0; i < VPORT_HASH_BUCKETS; i++) {
- struct hlist_head *bucket = &dev_table[i];
- struct vport *vport;
- struct hlist_node *node, *next;
-
- hlist_for_each_entry_safe(vport, node, next, bucket, hash_node)
- vport_del(vport);
- }
-
- vport_unlock();
- rtnl_unlock();
-}
-
/**
* vport_exit - shutdown vport subsystem
*
{
int i;
- vport_del_all();
-
for (i = 0; i < n_vport_types; i++) {
if (vport_ops_list[i]->exit)
vport_ops_list[i]->exit();
spin_unlock_bh(&vport->stats_lock);
return 0;
- } else if (vport->ops->set_stats)
- return vport->ops->set_stats(vport, stats);
- else
+ } else
return -EOPNOTSUPP;
}