]> www.infradead.org Git - users/jedix/linux-maple.git/commit
e1000e: Remove Other from EIAC
authorBenjamin Poirier <bpoirier@suse.com>
Wed, 31 Jan 2018 07:26:27 +0000 (16:26 +0900)
committerBrian Maly <brian.maly@oracle.com>
Tue, 30 Oct 2018 17:19:59 +0000 (13:19 -0400)
commit896395dbbd6e3d84a2e3a208395d287695bcdef7
treead750b457d358e47c79b3e7fda787c7325085c01
parentde31a1f5db6cdf82f4bc022974496dcf4d547cfc
e1000e: Remove Other from EIAC

Orabug: 28716958

It was reported that emulated e1000e devices in vmware esxi 6.5 Build
7526125 do not link up after commit 4aea7a5c5e94 ("e1000e: Avoid receiver
overrun interrupt bursts", v4.15-rc1). Some tracing shows that after
e1000e_trigger_lsc() is called, ICR reads out as 0x0 in e1000_msix_other()
on emulated e1000e devices. In comparison, on real e1000e 82574 hardware,
icr=0x80000004 (_INT_ASSERTED | _LSC) in the same situation.

Some experimentation showed that this flaw in vmware e1000e emulation can
be worked around by not setting Other in EIAC. This is how it was before
16ecba59bc33 ("e1000e: Do not read ICR in Other interrupt", v4.5-rc1).

Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts")
Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 745d0bd3af99ccc8c5f5822f808cd133eadad6ac)
Signed-off-by: Dan Duval <dan.duval@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/e1000e/netdev.c