[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240820180952.GA217979@bhelgaas>
Date: Tue, 20 Aug 2024 13:09:52 -0500
From: Bjorn Helgaas <helgaas@...nel.org>
To: Jiri Slaby <jirislaby@...nel.org>, Petr Valenta <petr@...klidu.cz>
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
[+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.
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