• Benjamin Poirier's avatar
    e1000e: Remove Other from EIAC · 745d0bd3
    Benjamin Poirier authored
    It was reported that emulated e1000e devices in vmware esxi 6.5 Build
    7526125 do not link up after commit 4aea7a5c ("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
    16ecba59 ("e1000e: Do not read ICR in Other interrupt", v4.5-rc1).
    
    Fixes: 4aea7a5c ("e1000e: Avoid receiver overrun interrupt bursts")
    Signed-off-by: default avatarBenjamin Poirier <bpoirier@suse.com>
    Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    745d0bd3
netdev.c 214 KB