[PATCH 0/1][SRU][U/P/O/N/J/F/B/X/T] UBUNTU: SAUCE: e1000/e1000e: add eeprom_bad_csum_allow module parameter

You-Sheng Yang vicamo.yang at canonical.com
Mon Mar 24 18:24:49 UTC 2025


BugLink: http://bugs.launchpad.net/bugs/2102113

[Impact]

Kernel module e1000e on load performs NVM checksum validation. This may
fails when the EEPROM got corrupted, but if bypassed the NIC still works
as it supposed to. This was once resolved for Presice in LP #1070182,
and carried all the way up until dropped in Trusty for unknown reason.

This patch adds the eeprom_bad_csum_allow module parameter for the
e1000 and e1000e drivers. This allows users of affected hardware
to bypass EEPROM/NVM checksum validation.

This patch was first sent to kernel mailing list as
https://lore.kernel.org/lkml/471E817D.5030500@intel.com/, but was
rejected for the favor of fixing the actual root cause in the EEPROM.
Then this was once accepted for Presice in LP #1070182, and had been
carried all the way up until dropped in Trusty for unknown reason.

[Fix]

Cherry pick commit fc650e376e72 ("UBUNTU: SAUCE: add
eeprom_bad_csum_allow module parameter") from linux/precise.

[Test Case]

1. Boot the patched kernel. The dmesg should have following error
message on devices with corrupted NIC EEPROM:

  e1000e 0000:00:19.0: >The NVM Checksum Is Not Valid
  e1000e: probe of 0000:00:19.0 failed with error -5

2. Unload the driver and reload with eeprom_bad_csum_allow=1:

  $ sudo modprobe -r e1000e
  $ sudo modprobe e1000e eeprom_bad_csum_allow=1

3. Check if netdev is up:

  $ ip link

[Where problems could occur]

>From the discussion thread, skipping checksum validation works only as a
quick work-around, and the configurations stored in EEPROM still matter
in runtime. The adapter may still fail to work as expected.

[Other Info]

To pick up this patch for all living kernels. Nominate for Trusty,
Xenial, Bionic, Focal, Jammy, Noble, Oracular, Plucky and Unstable.

Chris J Arges (1):
  UBUNTU: SAUCE: e1000/e1000e: add eeprom_bad_csum_allow module parameter

 drivers/net/ethernet/intel/e1000/e1000_main.c |  8 ++++++--
 drivers/net/ethernet/intel/e1000e/netdev.c    | 14 ++++++++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

-- 
2.48.1




More information about the kernel-team mailing list