From: Emil Tantilov <[email protected]>

3.12-stable review patch.  If anyone has any objections, please let me know.

===============

commit 2e0103810c6fed6a736c4a3af87b0f5c6bd8cd5b upstream.

This patch resolves an issue where the logic used to detect changes in rx-usecs
was incorrect and was masked by the call to ixgbe_update_rsc().

Setting rx-usecs between 0,2-9 and 1,10 and up requires a reset to allow
ixgbe_configure_tx_ring() to set the correct value for TXDCTL.WTHRESH in
order to avoid Tx hangs with BQL enabled.

Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
Signed-off-by: Jiri Slaby <[email protected]>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 
b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index e8649abf97c0..2cd86d30508b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -2212,13 +2212,13 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
 
 #if IS_ENABLED(CONFIG_BQL)
        /* detect ITR changes that require update of TXDCTL.WTHRESH */
-       if ((adapter->tx_itr_setting > 1) &&
+       if ((adapter->tx_itr_setting != 1) &&
            (adapter->tx_itr_setting < IXGBE_100K_ITR)) {
                if ((tx_itr_prev == 1) ||
-                   (tx_itr_prev > IXGBE_100K_ITR))
+                   (tx_itr_prev >= IXGBE_100K_ITR))
                        need_reset = true;
        } else {
-               if ((tx_itr_prev > 1) &&
+               if ((tx_itr_prev != 1) &&
                    (tx_itr_prev < IXGBE_100K_ITR))
                        need_reset = true;
        }
-- 
2.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to