lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <3fb71ecc-9096-4496-9152-f43b8721d937@jacekk.info>
Date: Mon, 30 Jun 2025 10:33:00 +0200
From: Jacek Kowalski <jacek@...ekk.info>
To: Tony Nguyen <anthony.l.nguyen@...el.com>,
 Przemek Kitszel <przemyslaw.kitszel@...el.com>,
 Andrew Lunn <andrew+netdev@...n.ch>, "David S. Miller"
 <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
 Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
 Simon Horman <horms@...nel.org>
Cc: intel-wired-lan@...ts.osuosl.org, netdev@...r.kernel.org
Subject: [PATCH v4 0/2] e1000e: disregard NVM checksums for known-bad cases on
 Tiger Lake

As described by Vitaly Lifshits:

> Starting from Tiger Lake, LAN NVM is locked for writes by SW, so the
> driver cannot perform checksum validation and correction. This means
> that all NVM images must leave the factory with correct checksum and
> checksum valid bit set.


There are two issues we have found so far on some Tiger Lake systems:

1. Checksum valid bit unset in NVM

Some Dell laptops, i.e. Latitude 5420, have a valid bit unset and
incorrect checksum over NVM contents.

2. Checksum word in NVM is uninitialized (0xFFFF)

Other Dell system, Optiplex 5090 Micro, has a valid bit set while
a checksum word contains 0xFFFF ("empty"/uninitialized value).


Both issues result in the driver refusing to work with error:

> e1000e 0000:XX:XX.X: The NVM Checksum Is Not Valid

The network card is rendered unusable.


Patches work around those problems by ignoring NVM checksum when those
exact error conditions are detected on TGP-based systems.


v1 -> v2: work around issue #2
v2 -> v3: fix wrong comparison in workaround for #2, drop u16 cast
v3 -> v4: rename constant, reformat files, update commit description

Jacek Kowalski (2):
  e1000e: disregard NVM checksum on tgp when valid checksum bit is not
    set
  e1000e: ignore uninitialized checksum word on tgp

 drivers/net/ethernet/intel/e1000e/defines.h | 3 +++
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 ++
 drivers/net/ethernet/intel/e1000e/nvm.c     | 6 ++++++
 3 files changed, 11 insertions(+)

-- 
2.47.2


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ