[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7ec28d20-c729-496a-b8bf-2bf88bbb4d70@jevklidu.cz>
Date: Tue, 20 Aug 2024 23:13:54 +0200
From: Petr Valenta <petr@...klidu.cz>
To: Bjorn Helgaas <helgaas@...nel.org>, Jiri Slaby <jirislaby@...nel.org>
Cc: Bjorn Helgaas <bhelgaas@...gle.com>, Len Brown <lenb@...nel.org>,
"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
Linux kernel mailing list <linux-kernel@...r.kernel.org>,
Linux regressions mailing list <regressions@...ts.linux.dev>,
Tony Nguyen <anthony.l.nguyen@...el.com>, przemyslaw.kitszel@...el.com,
intel-wired-lan@...ts.osuosl.org, "Rafael J. Wysocki" <rafael@...nel.org>
Subject: Re: ACPI IRQ storm with 6.10
Dne 20. 08. 24 v 20:09 Bjorn Helgaas napsal(a):
> [+to Petr, -cc Jesse, bouncing]
>
> On Mon, Aug 19, 2024 at 07:23:42AM +0200, Jiri Slaby wrote:
>> On 19. 08. 24, 6:50, Jiri Slaby wrote:
>>> CC e1000e guys + Jesse (due to 75a3f93b5383) + Bjorn (due to b2c289415b2b)
>>
>> Bjorn,
>>
>> I am confused by these changes:
>> ==========================================
>> @@ -291,16 +288,13 @@ static int e1000_set_link_ksettings(struct net_device
>> *net
>> dev,
>> * duplex is forced.
>> */
>> if (cmd->base.eth_tp_mdix_ctrl) {
>> - if (hw->phy.media_type != e1000_media_type_copper) {
>> - ret_val = -EOPNOTSUPP;
>> - goto out;
>> - }
>> + if (hw->phy.media_type != e1000_media_type_copper)
>> + return -EOPNOTSUPP;
>>
>> if ((cmd->base.eth_tp_mdix_ctrl != ETH_TP_MDI_AUTO) &&
>> (cmd->base.autoneg != AUTONEG_ENABLE)) {
>> e_err("forcing MDI/MDI-X state is not supported when
>> lin
>> k speed and/or duplex are forced\n");
>> - ret_val = -EINVAL;
>> - goto out;
>> + return -EINVAL;
>> }
>> }
>>
>> @@ -347,7 +341,6 @@ static int e1000_set_link_ksettings(struct net_device
>> *netde
>> v,
>> }
>>
>> out:
>> - pm_runtime_put_sync(netdev->dev.parent);
>> clear_bit(__E1000_RESETTING, &adapter->state);
>> return ret_val;
>> }
>> ==========================================
>>
>> So no more clear_bit(__E1000_RESETTING in the above fail paths. Is that
>> intentional?
>
> Not intentional. Petr, do you have the ability to test the patch
> below? I'm not sure it's the correct fix, but it reverts the pieces
> of b2c289415b2b that Jiri pointed out.
>
I tested the patch below but it didn't help. After the first boot with
new kernel it looked promising as the irq storm only appeared for a few
seconds, but with subsequent reboots it was the same as without the patch.
To be sure, I also send the md5sum of ethtool.c after applying the patch:
a25c003257538f16994b4d7c4260e894 ethtool.c
> diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
> index 9364bc2b4eb1..9db36ee71684 100644
> --- a/drivers/net/ethernet/intel/e1000e/ethtool.c
> +++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
> @@ -280,7 +280,8 @@ static int e1000_set_link_ksettings(struct net_device *netdev,
> if (hw->phy.ops.check_reset_block &&
> hw->phy.ops.check_reset_block(hw)) {
> e_err("Cannot change link characteristics when SoL/IDER is active.\n");
> - return -EINVAL;
> + ret_val = -EINVAL;
> + goto out;
> }
>
> /* MDI setting is only allowed when autoneg enabled because
> @@ -288,13 +289,16 @@ static int e1000_set_link_ksettings(struct net_device *netdev,
> * duplex is forced.
> */
> if (cmd->base.eth_tp_mdix_ctrl) {
> - if (hw->phy.media_type != e1000_media_type_copper)
> - return -EOPNOTSUPP;
> + if (hw->phy.media_type != e1000_media_type_copper) {
> + ret_val = -EOPNOTSUPP;
> + goto out;
> + }
>
> if ((cmd->base.eth_tp_mdix_ctrl != ETH_TP_MDI_AUTO) &&
> (cmd->base.autoneg != AUTONEG_ENABLE)) {
> e_err("forcing MDI/MDI-X state is not supported when link speed and/or duplex are forced\n");
> - return -EINVAL;
> + ret_val = -EINVAL;
> + goto out;
> }
> }
>
Powered by blists - more mailing lists