e1000e: fix the use of magic numbers for buffer overrun issue
This is a follow on to commit b10effb92e
("fix buffer overrun while the
I219 is processing DMA transactions") to address David Laights concerns
about the use of "magic" numbers. So define masks as well as add
additional code comments to give a better understanding of what needs to
be done to avoid a buffer overrun.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Reviewed-by: Alexander H Duyck <alexander.h.duyck@intel.com>
Reviewed-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
Reviewed-by: Raanan Avargil <raanan.avargil@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:

committed by
Jeff Kirsher

parent
c30bf8cece
commit
c0f4b163a0
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user