linux/drivers/net/ethernet/intel
Tony Nguyen 1d6500523b e1000e: add system to disable K1 list
Javier reports seeing packet loss issues related to the re-enablement
of K1; disabling it makes the issues go away. Add the reported system
to have K1 disabled by default.

Reproduction steps (from the Link):
Plug the cable and ping the default gateway on the LAN. No suspend/resume
involved, machine freshly booted and on AC power. Nothing e1000e-related in
dmesg apart from the link up/down messages; no "Hardware Unit Hang".

Default (K1 enabled):

  $ ping -c 30 192.168.10.1
  --- 192.168.10.1 ping statistics ---
  30 packets transmitted, 18 received, 40% packet loss, time 29734ms
  rtt min/avg/max/mdev = 0.211/0.315/0.384/0.046 ms

The lost packets are spread over the run (seq 6, 8, 9, 11, 13, 14, 16, 19,
20, 24, 25, 30), not a single burst. DHCP on this link also takes 1-2
minutes to get a lease, consistent with incoming packets being dropped.

With K1 disabled at runtime:

  # ethtool --set-priv-flags enp0s31f6 disable-k1 on
  $ ethtool --show-priv-flags enp0s31f6
  Private flags for enp0s31f6:
  s0ix-enabled: on
  disable-k1  : on

  $ ping -c 30 192.168.10.1
  --- 192.168.10.1 ping statistics ---
  30 packets transmitted, 30 received, 0% packet loss, time 29713ms
  rtt min/avg/max/mdev = 0.169/0.251/0.468/0.054 ms

  $ ping -c 30 192.168.10.1
  --- 192.168.10.1 ping statistics ---
  30 packets transmitted, 30 received, 0% packet loss, time 29677ms
  rtt min/avg/max/mdev = 0.101/0.222/0.360/0.064 ms

I have only compile tested this, but Javier has tested that disabling K1
on his system (Lenovo ThinkPad P14s Gen 5 (Intel), I219-LM [8086:550a])
resolves his issues.

Cc: stable@vger.kernel.org
Fixes: 578294b8b6 ("e1000e: Reconfigure PLL clock gate timeout and re-enable K1 on Meteor Lake")
Reported-by: Javier Herrera <javier.herrera@afronta.com>
Link: https://lore.kernel.org/intel-wired-lan/CAKRuCQLWEcci9hPgNUmvq44Bd2H30T5_vP=exMjsknXMN5Yh9A@mail.gmail.com/
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20261001222443.3500206-7-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-10-07 19:00:32 -07:00
..
e1000 e1000: fix memory leak in e1000_probe() 2026-07-28 11:23:01 -07:00
e1000e e1000e: add system to disable K1 list 2026-10-07 19:00:32 -07:00
fm10k net: Consistently define pci_device_ids using named initializers 2026-05-12 18:16:34 -07:00
i40e i40e: skip unnecessary VF reset when setting trust 2026-09-28 09:09:06 -07:00
iavf iavf: send MAC change request synchronously 2026-09-28 09:09:06 -07:00
ice Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue 2026-10-05 15:44:46 -07:00
idpf idpf: account for VLAN header when parsing RSC packet header 2026-09-08 13:10:35 -07:00
igb net: intel: remove conditional return with no effect 2026-07-30 13:04:03 +02:00
igbvf igbvf: Fix leak in TX DMA error cleanup 2026-07-28 11:23:01 -07:00
igc xsk: honor XDP_TX_METADATA in zero-copy path 2026-08-24 11:12:00 -07:00
ixd ixd: add devlink support 2026-08-12 13:56:51 -07:00
ixgbe net: prevent torn reads in netdev_tc_txq 2026-08-17 10:27:48 -07:00
ixgbevf Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-05-21 15:09:02 -07:00
libeth libeth: allow to create fill queues without NAPI 2026-08-12 13:56:50 -07:00
libie treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
e100.c net: Consistently define pci_device_ids using named initializers 2026-05-12 18:16:34 -07:00
Kconfig ixd: add basic driver framework for Intel(R) Control Plane Function 2026-08-12 13:56:51 -07:00
Makefile ixd: add basic driver framework for Intel(R) Control Plane Function 2026-08-12 13:56:51 -07:00