Skip to content

Commit 0c02dd9

Browse files
MatthewVickIntelJeff Kirsher
authored andcommitted
igb: Disable the BMC-to-OS Watchdog Enable bit for DMAC.
Under certain scenarios, it's possible that bursty manageability traffic over the BMC-to-OS path may overrun the internal manageability receive buffer causing dropped manageability packets. Clearing this bit prevents this situation by interrupting coalescing to allow manageability traffic through. Signed-off-by: Matthew Vick <matthew.vick@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
1 parent a306085 commit 0c02dd9

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

drivers/net/ethernet/intel/igb/e1000_defines.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,8 @@
301301
* transactions */
302302
#define E1000_DMACR_DMAC_LX_SHIFT 28
303303
#define E1000_DMACR_DMAC_EN 0x80000000 /* Enable DMA Coalescing */
304+
/* DMA Coalescing BMC-to-OS Watchdog Enable */
305+
#define E1000_DMACR_DC_BMC2OSW_EN 0x00008000
304306

305307
#define E1000_DMCTXTH_DMCTTHR_MASK 0x00000FFF /* DMA Coalescing Transmit
306308
* Threshold */

drivers/net/ethernet/intel/igb/igb_main.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7147,6 +7147,9 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)
71477147

71487148
/* watchdog timer= +-1000 usec in 32usec intervals */
71497149
reg |= (1000 >> 5);
7150+
7151+
/* Disable BMC-to-OS Watchdog Enable */
7152+
reg &= ~E1000_DMACR_DC_BMC2OSW_EN;
71507153
wr32(E1000_DMACR, reg);
71517154

71527155
/*

0 commit comments

Comments
 (0)