On Fri, May 10, 2013 at 03:13:24PM +0300, Imre Deak wrote: > --- a/drivers/net/bonding/bond_main.c > +++ b/drivers/net/bonding/bond_main.c > @@ -1751,7 +1751,7 @@ int bond_enslave(struct net_device *bond_dev, struct > net_device *slave_dev) > read_lock(&bond->lock); > > new_slave->last_arp_rx = jiffies - > - (msecs_to_jiffies(bond->params.arp_interval) + 1); > + (msecs_to_jiffies_min(bond->params.arp_interval)); > > if (bond->params.miimon && !bond->params.use_carrier) { > link_reporting = bond_check_dev_link(bond, slave_dev, 1);
This "+ 1" was actually meant as "plus one". We need to ensure that slave->last_arp_rx + msecs_to_jiffies(bond->params.arp_interval) is strictly less than current value of jiffies. So with proposed definition of msecs_to_jiffies_min() it works correctly but if the implementation ever changes in such way that msecs_to_jiffies_min(x) >= msecs_to_jiffies(x) for some value of x, the code would be incorrect. Michal Kubeček -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/