Loading net/bridge/br_if.c +6 −2 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ static void port_carrier_check(struct work_struct *work) spin_unlock_bh(&br->lock); } done: dev_put(dev); rtnl_unlock(); } Loading Loading @@ -161,7 +162,8 @@ static void del_nbp(struct net_bridge_port *p) dev_set_promiscuity(dev, -1); cancel_delayed_work(&p->carrier_check); if (cancel_delayed_work(&p->carrier_check)) dev_put(dev); spin_lock_bh(&br->lock); br_stp_disable_port(p); Loading Loading @@ -444,7 +446,9 @@ int br_add_if(struct net_bridge *br, struct net_device *dev) spin_lock_bh(&br->lock); br_stp_recalculate_bridge_id(br); br_features_recompute(br); schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE); if (schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE)) dev_hold(dev); spin_unlock_bh(&br->lock); dev_set_mtu(br->dev, br_min_mtu(br)); Loading net/bridge/br_notify.c +3 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,9 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v case NETDEV_CHANGE: if (br->dev->flags & IFF_UP) schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE); if (schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE)) dev_hold(dev); break; case NETDEV_FEAT_CHANGE: Loading Loading
net/bridge/br_if.c +6 −2 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ static void port_carrier_check(struct work_struct *work) spin_unlock_bh(&br->lock); } done: dev_put(dev); rtnl_unlock(); } Loading Loading @@ -161,7 +162,8 @@ static void del_nbp(struct net_bridge_port *p) dev_set_promiscuity(dev, -1); cancel_delayed_work(&p->carrier_check); if (cancel_delayed_work(&p->carrier_check)) dev_put(dev); spin_lock_bh(&br->lock); br_stp_disable_port(p); Loading Loading @@ -444,7 +446,9 @@ int br_add_if(struct net_bridge *br, struct net_device *dev) spin_lock_bh(&br->lock); br_stp_recalculate_bridge_id(br); br_features_recompute(br); schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE); if (schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE)) dev_hold(dev); spin_unlock_bh(&br->lock); dev_set_mtu(br->dev, br_min_mtu(br)); Loading
net/bridge/br_notify.c +3 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,9 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v case NETDEV_CHANGE: if (br->dev->flags & IFF_UP) schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE); if (schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE)) dev_hold(dev); break; case NETDEV_FEAT_CHANGE: Loading