Commit 2e010381 authored by Emil Tantilov's avatar Emil Tantilov Committed by Jeff Kirsher

ixgbe: fix rx-usecs range checks for BQL

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: default avatarEmil Tantilov <emil.s.tantilov@intel.com>
Tested-by: default avatarPhil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent c0798edf
...@@ -2257,13 +2257,13 @@ static int ixgbe_set_coalesce(struct net_device *netdev, ...@@ -2257,13 +2257,13 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
#if IS_ENABLED(CONFIG_BQL) #if IS_ENABLED(CONFIG_BQL)
/* detect ITR changes that require update of TXDCTL.WTHRESH */ /* 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)) { (adapter->tx_itr_setting < IXGBE_100K_ITR)) {
if ((tx_itr_prev == 1) || if ((tx_itr_prev == 1) ||
(tx_itr_prev > IXGBE_100K_ITR)) (tx_itr_prev >= IXGBE_100K_ITR))
need_reset = true; need_reset = true;
} else { } else {
if ((tx_itr_prev > 1) && if ((tx_itr_prev != 1) &&
(tx_itr_prev < IXGBE_100K_ITR)) (tx_itr_prev < IXGBE_100K_ITR))
need_reset = true; need_reset = true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment