mirror of https://gitee.com/openkylin/linux.git
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: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
c0798edfb3
commit
2e0103810c
|
@ -2257,13 +2257,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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue