diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c b/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c index a13ee177a0218bde0e811d1f622e3c380501318d..1aceb32d187cf2bb0bd96f6e9a57ffcc971ef2a9 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c @@ -997,6 +997,14 @@ static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw) reg |= (1 << 28); ew32(TARC(1), reg); + /* + * Disable IPv6 extension header parsing because some malformed + * IPv6 headers can hang the Rx. + */ + reg = er32(RFCTL); + reg |= (E1000_RFCTL_IPV6_EX_DIS | E1000_RFCTL_NEW_IPV6_EXT_DIS); + ew32(RFCTL, reg); + return; }