net: ethernet: ti: cpsw: fix rx-usecs interrupt pacing consistency
authorIvan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Thu, 2 Jun 2016 13:14:52 +0000 (16:14 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Jun 2016 23:35:06 +0000 (19:35 -0400)
The rx-usecs shouldn't be changed while interface down/up.
Currently, for instance, if it's set to 100us, after interface
down/up it's 500us. It's a hidden bug that can lead to lavish
interrupt pacing time increasing while "down/up" up to max value.

Steps to reproduce:
- set rx-usecs to be 100us
- down/up interface
- read new unexpected rx-usecs

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw.c

index 4b08a2f52b3e6074218fb6ba876a639855818d3d..e6bb0ecb12c74cb88204635d3ec2712816597a44 100644 (file)
@@ -1339,7 +1339,7 @@ static int cpsw_ndo_open(struct net_device *ndev)
        if (priv->coal_intvl != 0) {
                struct ethtool_coalesce coal;
 
-               coal.rx_coalesce_usecs = (priv->coal_intvl << 4);
+               coal.rx_coalesce_usecs = priv->coal_intvl;
                cpsw_set_coalesce(ndev, &coal);
        }