aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_main.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-10-07 13:38:43 -0400
committerDavid S. Miller <davem@davemloft.net>2011-10-07 13:38:43 -0400
commit88c5100c28b02c4b2b2c6f6fafbbd76d90f698b9 (patch)
tree08c4399e0341f7eb0ccb24e15f2cab687275c2a4 /drivers/net/bonding/bond_main.c
parent8083f0fc969d9b5353061a7a6f963405057e26b1 (diff)
parent3ee72ca99288f1de95ec9c570e43f531c8799f06 (diff)
Merge branch 'master' of github.com:davem330/net
Conflicts: net/batman-adv/soft-interface.c
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
-rw-r--r--drivers/net/bonding/bond_main.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 1dcb07ce526..6191e633728 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -774,6 +774,9 @@ static void bond_resend_igmp_join_requests(struct bonding *bond)
774 774
775 read_lock(&bond->lock); 775 read_lock(&bond->lock);
776 776
777 if (bond->kill_timers)
778 goto out;
779
777 /* rejoin all groups on bond device */ 780 /* rejoin all groups on bond device */
778 __bond_resend_igmp_join_requests(bond->dev); 781 __bond_resend_igmp_join_requests(bond->dev);
779 782
@@ -787,9 +790,9 @@ static void bond_resend_igmp_join_requests(struct bonding *bond)
787 __bond_resend_igmp_join_requests(vlan_dev); 790 __bond_resend_igmp_join_requests(vlan_dev);
788 } 791 }
789 792
790 if (--bond->igmp_retrans > 0) 793 if ((--bond->igmp_retrans > 0) && !bond->kill_timers)
791 queue_delayed_work(bond->wq, &bond->mcast_work, HZ/5); 794 queue_delayed_work(bond->wq, &bond->mcast_work, HZ/5);
792 795out:
793 read_unlock(&bond->lock); 796 read_unlock(&bond->lock);
794} 797}
795 798
@@ -2535,7 +2538,7 @@ void bond_mii_monitor(struct work_struct *work)
2535 } 2538 }
2536 2539
2537re_arm: 2540re_arm:
2538 if (bond->params.miimon) 2541 if (bond->params.miimon && !bond->kill_timers)
2539 queue_delayed_work(bond->wq, &bond->mii_work, 2542 queue_delayed_work(bond->wq, &bond->mii_work,
2540 msecs_to_jiffies(bond->params.miimon)); 2543 msecs_to_jiffies(bond->params.miimon));
2541out: 2544out:
@@ -2883,7 +2886,7 @@ void bond_loadbalance_arp_mon(struct work_struct *work)
2883 } 2886 }
2884 2887
2885re_arm: 2888re_arm:
2886 if (bond->params.arp_interval) 2889 if (bond->params.arp_interval && !bond->kill_timers)
2887 queue_delayed_work(bond->wq, &bond->arp_work, delta_in_ticks); 2890 queue_delayed_work(bond->wq, &bond->arp_work, delta_in_ticks);
2888out: 2891out:
2889 read_unlock(&bond->lock); 2892 read_unlock(&bond->lock);
@@ -3151,7 +3154,7 @@ void bond_activebackup_arp_mon(struct work_struct *work)
3151 bond_ab_arp_probe(bond); 3154 bond_ab_arp_probe(bond);
3152 3155
3153re_arm: 3156re_arm:
3154 if (bond->params.arp_interval) 3157 if (bond->params.arp_interval && !bond->kill_timers)
3155 queue_delayed_work(bond->wq, &bond->arp_work, delta_in_ticks); 3158 queue_delayed_work(bond->wq, &bond->arp_work, delta_in_ticks);
3156out: 3159out:
3157 read_unlock(&bond->lock); 3160 read_unlock(&bond->lock);