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 for Android: free password hash cracker in your pocket
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ