[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <SJ1PR11MB629772C23BAB21977ECFA1389BA0A@SJ1PR11MB6297.namprd11.prod.outlook.com>
Date: Wed, 10 Dec 2025 22:28:56 +0000
From: "Salin, Samuel" <samuel.salin@...el.com>
To: "Tantilov, Emil S" <emil.s.tantilov@...el.com>,
"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "Loktionov, Aleksandr"
<aleksandr.loktionov@...el.com>, "Kitszel, Przemyslaw"
<przemyslaw.kitszel@...el.com>, "Nguyen, Anthony L"
<anthony.l.nguyen@...el.com>, "andrew+netdev@...n.ch"
<andrew+netdev@...n.ch>, "davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com" <edumazet@...gle.com>, "kuba@...nel.org"
<kuba@...nel.org>, "pabeni@...hat.com" <pabeni@...hat.com>,
"decot@...gle.com" <decot@...gle.com>, "willemb@...gle.com"
<willemb@...gle.com>, "Hay, Joshua A" <joshua.a.hay@...el.com>, "Chittim,
Madhu" <madhu.chittim@...el.com>, "Lobakin, Aleksander"
<aleksander.lobakin@...el.com>, "Zaremba, Larysa" <larysa.zaremba@...el.com>,
"iamvivekkumar@...gle.com" <iamvivekkumar@...gle.com>
Subject: RE: [Intel-wired-lan] [PATCH iwl-net v2 1/5] idpf: keep the netdev
when a reset fails
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf Of
> Emil Tantilov
> Sent: Thursday, November 20, 2025 4:12 PM
> To: intel-wired-lan@...ts.osuosl.org
> Cc: netdev@...r.kernel.org; Loktionov, Aleksandr
> <aleksandr.loktionov@...el.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@...el.com>; Nguyen, Anthony L
> <anthony.l.nguyen@...el.com>; andrew+netdev@...n.ch;
> davem@...emloft.net; edumazet@...gle.com; kuba@...nel.org;
> pabeni@...hat.com; decot@...gle.com; willemb@...gle.com; Hay, Joshua
> A <joshua.a.hay@...el.com>; Chittim, Madhu <madhu.chittim@...el.com>;
> Lobakin, Aleksander <aleksander.lobakin@...el.com>; Zaremba, Larysa
> <larysa.zaremba@...el.com>; iamvivekkumar@...gle.com
> Subject: [Intel-wired-lan] [PATCH iwl-net v2 1/5] idpf: keep the netdev when a
> reset fails
>
> During a successful reset the driver would re-allocate vport resources while
> keeping the netdevs intact. However, in case of an error in the init task, the
> netdev of the failing vport will be unregistered, effectively removing the
> network interface:
>
> [ 121.211076] idpf 0000:83:00.0: enabling device (0100 -> 0102) [
> 121.221976] idpf 0000:83:00.0: Device HW Reset initiated [ 124.161229]
> idpf 0000:83:00.0 ens801f0: renamed from eth0 [ 124.163364] idpf
> 0000:83:00.0 ens801f0d1: renamed from eth1 [ 125.934656] idpf
> 0000:83:00.0 ens801f0d2: renamed from eth2 [ 128.218429] idpf
> 0000:83:00.0 ens801f0d3: renamed from eth3
>
> ip -br a
> ens801f0 UP
> ens801f0d1 UP
> ens801f0d2 UP
> ens801f0d3 UP
> echo 1 > /sys/class/net/ens801f0/device/reset
>
> [ 145.885537] idpf 0000:83:00.0: resetting [ 145.990280] idpf
> 0000:83:00.0: reset done [ 146.284766] idpf 0000:83:00.0: HW reset
> detected [ 146.296610] idpf 0000:83:00.0: Device HW Reset initiated [
> 211.556719] idpf 0000:83:00.0: Transaction timed-out (op:526 cookie:7700
> vc_op:526 salt:77 timeout:60000ms) [ 272.996705] idpf 0000:83:00.0:
> Transaction timed-out (op:502 cookie:7800 vc_op:502 salt:78
> timeout:60000ms)
>
> ip -br a
> ens801f0d1 DOWN
> ens801f0d2 DOWN
> ens801f0d3 DOWN
>
> Re-shuffle the logic in the error path of the init task to make sure the netdevs
> remain intact. This will allow the driver to attempt recovery via subsequent
> resets, provided the FW is still functional.
>
> The main change is to make sure that idpf_decfg_netdev() is not called should
> the init task fail during a reset. The error handling is consolidated under
> unwind_vports, as the removed labels had the same cleanup logic split
> depending on the point of failure.
>
> Fixes: ce1b75d0635c ("idpf: add ptypes and MAC filter support")
> Signed-off-by: Emil Tantilov <emil.s.tantilov@...el.com>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
> ---
> 2.37.3
Tested-by: Samuel Salin <Samuel.salin@...el.com>
Powered by blists - more mailing lists