diff options
author | David S. Miller <davem@davemloft.net> | 2011-10-07 13:38:43 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-07 13:38:43 -0400 |
commit | 88c5100c28b02c4b2b2c6f6fafbbd76d90f698b9 (patch) | |
tree | 08c4399e0341f7eb0ccb24e15f2cab687275c2a4 /drivers/net/bonding/bond_main.c | |
parent | 8083f0fc969d9b5353061a7a6f963405057e26b1 (diff) | |
parent | 3ee72ca99288f1de95ec9c570e43f531c8799f06 (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.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 1dcb07ce5263..6191e6337284 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 | 795 | out: | |
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 | ||
2537 | re_arm: | 2540 | re_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)); |
2541 | out: | 2544 | out: |
@@ -2883,7 +2886,7 @@ void bond_loadbalance_arp_mon(struct work_struct *work) | |||
2883 | } | 2886 | } |
2884 | 2887 | ||
2885 | re_arm: | 2888 | re_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); |
2888 | out: | 2891 | out: |
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 | ||
3153 | re_arm: | 3156 | re_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); |
3156 | out: | 3159 | out: |
3157 | read_unlock(&bond->lock); | 3160 | read_unlock(&bond->lock); |