igb: Disable the BMC-to-OS Watchdog Enable bit for DMAC.
authorMatthew Vick <matthew.vick@intel.com>
Sat, 14 Apr 2012 05:20:32 +0000 (05:20 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 17 May 2012 12:04:21 +0000 (05:04 -0700)
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>
drivers/net/ethernet/intel/igb/e1000_defines.h
drivers/net/ethernet/intel/igb/igb_main.c

index 6409f85..ec7e4fe 100644 (file)
                                                        * transactions */
 #define E1000_DMACR_DMAC_LX_SHIFT       28
 #define E1000_DMACR_DMAC_EN             0x80000000 /* Enable DMA Coalescing */
+/* DMA Coalescing BMC-to-OS Watchdog Enable */
+#define E1000_DMACR_DC_BMC2OSW_EN      0x00008000
 
 #define E1000_DMCTXTH_DMCTTHR_MASK      0x00000FFF /* DMA Coalescing Transmit
                                                        * Threshold */
index 9bbf1a2..dd3bfe8 100644 (file)
@@ -7147,6 +7147,9 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)
 
                        /* watchdog timer= +-1000 usec in 32usec intervals */
                        reg |= (1000 >> 5);
+
+                       /* Disable BMC-to-OS Watchdog Enable */
+                       reg &= ~E1000_DMACR_DC_BMC2OSW_EN;
                        wr32(E1000_DMACR, reg);
 
                        /*