The patch titled bonding: fix oops when arp_interval is set to a low value has been added to the -mm tree. Its filename is bonding-fix-oops-when-arp_interval-is-set-to-a-low-value.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: bonding: fix oops when arp_interval is set to a low value From: Nicolas de Pesloüan <nicolas.2p.debian@xxxxxxx> When setting arp_interval parameter to a very low value, delta_in_ticks for next arp might become 0, causing an infinite loop. See http://bugzilla.kernel.org/show_bug.cgi?id=10680 Same problem for miimon parameter already fixed, but fix might be enhanced, by using msecs_to_jiffies() function. Signed-off-by: Nicolas de Pesloüan <nicolas.2p.debian@xxxxxxx> Cc: Jay Vosburgh <fubar@xxxxxxxxxx> Cc "David S. Miller" <davem@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/net/bonding/bond_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff -puN drivers/net/bonding/bond_main.c~bonding-fix-oops-when-arp_interval-is-set-to-a-low-value drivers/net/bonding/bond_main.c --- a/drivers/net/bonding/bond_main.c~bonding-fix-oops-when-arp_interval-is-set-to-a-low-value +++ a/drivers/net/bonding/bond_main.c @@ -2398,7 +2398,7 @@ void bond_mii_monitor(struct work_struct read_lock(&bond->lock); } - delay = ((bond->params.miimon * HZ) / 1000) ? : 1; + delay = msecs_to_jiffies(bond->params.miimon); read_unlock(&bond->lock); queue_delayed_work(bond->wq, &bond->mii_work, delay); } @@ -2708,7 +2708,7 @@ void bond_loadbalance_arp_mon(struct wor read_lock(&bond->lock); - delta_in_ticks = (bond->params.arp_interval * HZ) / 1000; + delta_in_ticks = msecs_to_jiffies(bond->params.arp_interval); if (bond->kill_timers) { goto out; @@ -2838,7 +2838,7 @@ void bond_activebackup_arp_mon(struct wo read_lock(&bond->lock); - delta_in_ticks = (bond->params.arp_interval * HZ) / 1000; + delta_in_ticks = msecs_to_jiffies(bond->params.arp_interval * HZ); if (bond->kill_timers) { goto out; _ Patches currently in -mm which might be from nicolas.2p.debian@xxxxxxx are bonding-fix-oops-when-arp_interval-is-set-to-a-low-value.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html