> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Vitaly Lifshits
> Sent: Tuesday, August 19, 2025 2:43 PM
> To: [email protected]
> Cc: Wu, Ricky <[email protected]>; [email protected];
> [email protected]; Lifshits, Vitaly
> <[email protected]>
> Subject: [Intel-wired-lan] [PATCH iwl-next v1 1/1] e1000e: Introduce
> private flag to disable K1
>
> The K1 state reduces power consumption on ICH family network
> controllers
> during idle periods, similarly to L1 state on PCI Express NICs.
> Therefore,
> it is recommended and enabled by default.
> However, on some systems it has been observed to have adverse side
> effects, such as packet loss. It has been established through debug
> that
> the problem may be due to firmware misconfiguration of specific
> systems,
> interoperability with certain link partners, or marginal electrical
> conditions of specific units.
>
> These problems typically cannot be fixed in the field, and generic
> workarounds to resolve the side effects on all systems, while keeping
> K1
> enabled, were found infeasible.
> Therefore, add the option for users to globally disable K1 idle state
> on
> the adapter.
>
> Link: https://lore.kernel.org/intel-wired-
> lan/camqyjg3lvqfgqmctxeapur_jq0oqh7ggdxruvtrx_6tth2m...@mail.gmail.com
> /
> Link: https://lore.kernel.org/intel-wired-
> lan/[email protected]/
> Link: https://lore.kernel.org/intel-wired-lan/Z_z9EjcKtwHCQcZR@mail-
> itl/
>
> Signed-off-by: Vitaly Lifshits <[email protected]>
> ---
> drivers/net/ethernet/intel/e1000e/e1000.h | 1 +
> drivers/net/ethernet/intel/e1000e/ethtool.c | 29 ++++++++++++++--
> drivers/net/ethernet/intel/e1000e/hw.h | 1 +
> drivers/net/ethernet/intel/e1000e/ich8lan.c | 38 +++++++++++---------
> -
> drivers/net/ethernet/intel/e1000e/ich8lan.h | 2 ++
> drivers/net/ethernet/intel/e1000e/netdev.c | 5 +++
> 6 files changed, 55 insertions(+), 21 deletions(-)
>
...
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -5267,6 +5267,11 @@ static void e1000_watchdog_task(struct
> work_struct *work)
> &adapter->link_duplex);
> e1000_print_link_info(adapter);
>
> + if (adapter->flags2 & FLAG2_DISABLE_K1) {
> + adapter->hw.dev_spec.ich8lan.disable_k1 =
> true;
> + e1000_reconfigure_k1_params(&adapter->hw);
> + }
> +
You changed the function header comment to require the PHY sem.
Good - but. You already correctly hold the lock in other call sites (e.g., init
paths).
Are you sure watchdog still consistent?
> /* check if SmartSpeed worked */
> e1000e_check_downshift(hw);
> if (phy->speed_downgraded)
> --
> 2.34.1