diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/netdev.c')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000e/netdev.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index f2f49239b015..9f18d39bdc8f 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -3034,9 +3034,12 @@ static void e1000_configure_tx(struct e1000_adapter *adapter)  		ew32(IOSFPC, reg_val);  		reg_val = er32(TARC(0)); -		/* SPT and KBL Si errata workaround to avoid Tx hang */ -		reg_val &= ~BIT(28); -		reg_val |= BIT(29); +		/* SPT and KBL Si errata workaround to avoid Tx hang. +		 * Dropping the number of outstanding requests from +		 * 3 to 2 in order to avoid a buffer overrun. +		 */ +		reg_val &= ~E1000_TARC0_CB_MULTIQ_3_REQ; +		reg_val |= E1000_TARC0_CB_MULTIQ_2_REQ;  		ew32(TARC(0), reg_val);  	}  } |