br_if.c (163849ea9b4c5d50fbd324692461983d18faadad) br_if.c (2c8c1e7297e19bdef3c178c3ea41d898a7716e3e)
1/*
2 * Userspace interface
3 * Linux ethernet bridge
4 *
5 * Authors:
6 * Lennert Buytenhek <buytenh@gnu.org>
7 *
8 * This program is free software; you can redistribute it and/or

--- 453 unchanged lines hidden (view full) ---

462 spin_lock_bh(&br->lock);
463 br_stp_recalculate_bridge_id(br);
464 br_features_recompute(br);
465 spin_unlock_bh(&br->lock);
466
467 return 0;
468}
469
1/*
2 * Userspace interface
3 * Linux ethernet bridge
4 *
5 * Authors:
6 * Lennert Buytenhek <buytenh@gnu.org>
7 *
8 * This program is free software; you can redistribute it and/or

--- 453 unchanged lines hidden (view full) ---

462 spin_lock_bh(&br->lock);
463 br_stp_recalculate_bridge_id(br);
464 br_features_recompute(br);
465 spin_unlock_bh(&br->lock);
466
467 return 0;
468}
469
470void br_net_exit(struct net *net)
470void __net_exit br_net_exit(struct net *net)
471{
472 struct net_device *dev;
473 LIST_HEAD(list);
474
475 rtnl_lock();
476 for_each_netdev(net, dev)
477 if (dev->priv_flags & IFF_EBRIDGE)
478 del_br(netdev_priv(dev), &list);
479
480 unregister_netdevice_many(&list);
481 rtnl_unlock();
482
483}
471{
472 struct net_device *dev;
473 LIST_HEAD(list);
474
475 rtnl_lock();
476 for_each_netdev(net, dev)
477 if (dev->priv_flags & IFF_EBRIDGE)
478 del_br(netdev_priv(dev), &list);
479
480 unregister_netdevice_many(&list);
481 rtnl_unlock();
482
483}