From: "Ruinskiy, Dima" <dima.ruinskiy@intel.com>
To: "Loktionov, Aleksandr" <aleksandr.loktionov@intel.com>,
Philipp David <pd-lkml@3b.pm>,
"intel-wired-lan@lists.osuosl.org"
<intel-wired-lan@lists.osuosl.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: "Nguyen, Anthony L" <anthony.l.nguyen@intel.com>,
"Kitszel, Przemyslaw" <przemyslaw.kitszel@intel.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [Intel-wired-lan] [PATCH] igc: fix netdev not re-attached after resume if interface is down
Date: Tue, 4 Aug 2026 11:29:19 +0300 [thread overview]
Message-ID: <dec971cd-d26c-401a-953e-6ef3523ab245@intel.com> (raw)
In-Reply-To: <IA3PR11MB8986D164F76EFE059EF2EA23E5C02@IA3PR11MB8986.namprd11.prod.outlook.com>
On 23/07/2026 12:18, Loktionov, Aleksandr wrote:
>
>
>> -----Original Message-----
>> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
>> Of Philipp David via Intel-wired-lan
>> Sent: Friday, July 17, 2026 11:22 AM
>> To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org
>> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
>> Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn
>> <andrew+netdev@lunn.ch>; David S . Miller <davem@davemloft.net>; Eric
>> Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo
>> Abeni <pabeni@redhat.com>; Philipp David <pd-lkml@3b.pm>;
>> stable@vger.kernel.org
>> Subject: [Intel-wired-lan] [PATCH] igc: fix netdev not re-attached
>> after resume if interface is down
>>
>> __igc_resume() calls netif_device_attach() only inside the
>> netif_running() branch, so an interface that was down during suspend
>> is never re-attached on resume. It then stays in the not-present state
>> that __igc_shutdown() set via netif_device_detach(): ethtool reports
>> ENODEV and every attempt to bring the interface up fails the
>> netif_device_present() check in __dev_open() with -ENODEV, silently,
>> since __igc_resume() returns 0. Only reloading the driver recovers the
>> device.
>>
>> This is easy to hit in practice because NetworkManager brings managed
>> interfaces down before sleep unless Wake-on-LAN is configured, making
>> the adapter unusable after every suspend/resume cycle with WoL
>> disabled.
>>
>> Re-attach the netdev on every successful resume, as igb and e1000e do.
>>
>> Fixes: 6f31d6b643a3 ("igc: Refactor runtime power management flow")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Philipp David <pd-lkml@3b.pm>
>> ---
>> drivers/net/ethernet/intel/igc/igc_main.c | 8 +++++---
>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/intel/igc/igc_main.c
>> b/drivers/net/ethernet/intel/igc/igc_main.c
>> index 2c9e2dfd8499..e777c2df0b73 100644
>> --- a/drivers/net/ethernet/intel/igc/igc_main.c
>> +++ b/drivers/net/ethernet/intel/igc/igc_main.c
>> @@ -7586,11 +7586,13 @@ static int __igc_resume(struct device *dev,
>> bool rpm)
>> err = __igc_open(netdev, true);
>> if (!rpm)
>> rtnl_unlock();
>> - if (!err)
>> - netif_device_attach(netdev);
>> + if (err)
>> + return err;
>> }
>>
>> - return err;
>> + netif_device_attach(netdev);
>> +
>> + return 0;
>> }
>>
>> static int igc_resume(struct device *dev)
>> --
>> 2.54.0
>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Reviewed-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
prev parent reply other threads:[~2026-08-04 8:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-17 9:22 [PATCH] igc: fix netdev not re-attached after resume if interface is down Philipp David
2026-07-17 9:22 ` [Intel-wired-lan] " Philipp David via Intel-wired-lan
2026-07-23 9:18 ` Loktionov, Aleksandr
2026-07-23 9:18 ` Loktionov, Aleksandr
2026-08-04 8:29 ` Ruinskiy, Dima [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=dec971cd-d26c-401a-953e-6ef3523ab245@intel.com \
--to=dima.ruinskiy@intel.com \
--cc=aleksandr.loktionov@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pd-lkml@3b.pm \
--cc=przemyslaw.kitszel@intel.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.