From: Petr Oros <poros@redhat.com>
To: Ivan Vecera <ivecera@redhat.com>,
intel-wired-lan@osuosl.org, netdev@vger.kernel.org
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Alexander Lobakin <aleksander.lobakin@intel.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Jesper Dangaard Brouer <hawk@kernel.org>,
John Fastabend <john.fastabend@gmail.com>,
Stanislav Fomichev <sdf@fomichev.me>,
Henry Tieman <henry.w.tieman@intel.com>,
Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>,
Michal Swiatkowski <michal.swiatkowski@linux.intel.com>,
Jesse Brandeburg <jbrandeb@kernel.org>,
Preethi Banala <preethi.banala@intel.com>,
Kiran Patil <kiran.patil@intel.com>,
Dan Nowlin <dan.nowlin@intel.com>,
Stephen Hemminger <stephen@networkplumber.org>,
intel-wired-lan@lists.osuosl.org, linux-kernel@vger.kernel.org,
bpf@vger.kernel.org
Subject: Re: [PATCH iwl-net 03/10] ice: stop the LAN Tx queues when ice_vsi_open() fails
Date: Mon, 5 Oct 2026 14:03:49 +0200 [thread overview]
Message-ID: <d6c9d9f1-e693-427f-8151-d7a771c63ab2@redhat.com> (raw)
In-Reply-To: <1465AD22-8132-4286-A2AF-ED94E64E12C8@redhat.com>
On 10/3/26 11:54, Ivan Vecera wrote:
> On October 2, 2026 3:07:45 PM GMT+02:00, Petr Oros <poros@redhat.com> wrote:
>> ice_vsi_cfg_lan() adds the LAN (and XDP) Tx queues to the scheduler and
>> enables them in hardware. If anything after it fails in ice_vsi_open(),
>> for example requesting the MSI-X vectors, the error path only frees the
>> ring memory and leaves the queues configured. Every following open then
>> fails to add the same queues again and the netdev can not be brought up
>> until the driver is reloaded:
>>
>> ice 0000:04:00.2: Failed to set LAN Tx queue context, error: -5
>> ice 0000:04:00.2 enp4s0f2np2: Failed to open VSI 0x0010 on switch 0x0002
>>
>> Stop the Tx queues on the error paths that run after ice_vsi_cfg_lan().
>> The ice_up_complete() failure path already does it through ice_down(),
>> so let it skip the new step.
>>
>> There is no i40e counterpart of this fix, i40e does not add its Tx
>> queues through the admin queue. It was found while verifying the
>> previous patch. With the IRQ unwind fixed the warnings were gone, but
>> the netdev still could not be opened again after the forced
>> request_irq failure.
>>
>> Fixes: cdedef59deb0 ("ice: Configure VSIs for Tx/Rx")
>> Assisted-by: LLM
> Which one?
It was Claude Code with Claude Fable 5.1
Thanks for the review.
Petr
>
> Otherwise...
>
> Reviewed-by: Ivan Vecera <ivecera@redhat.com>
>
>
>> Signed-off-by: Petr Oros <poros@redhat.com>
>> ---
>> drivers/net/ethernet/intel/ice/ice_main.c | 10 ++++++++--
>> 1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
>> index d246cde36ae726..e62a8f544345a3 100644
>> --- a/drivers/net/ethernet/intel/ice/ice_main.c
>> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
>> @@ -7561,13 +7561,13 @@ int ice_vsi_open(struct ice_vsi *vsi)
>>
>> err = ice_vsi_cfg_lan(vsi);
>> if (err)
>> - goto err_setup_rx;
>> + goto err_stop_tx;
>>
>> snprintf(int_name, sizeof(int_name) - 1, "%s-%s",
>> dev_driver_string(ice_pf_to_dev(pf)), vsi->netdev->name);
>> err = ice_vsi_req_irq_msix(vsi, int_name);
>> if (err)
>> - goto err_setup_rx;
>> + goto err_stop_tx;
>>
>> if (bitmap_empty(pf->txtime_txqs, pf->max_pf_txqs))
>> ice_vsi_cfg_netdev_tc(vsi, vsi->tc_cfg.ena_tc);
>> @@ -7593,8 +7593,14 @@ int ice_vsi_open(struct ice_vsi *vsi)
>>
>> err_up_complete:
>> ice_down(vsi);
>> + ice_vsi_free_irq(vsi);
>> + goto err_setup_rx;
>> err_set_qs:
>> ice_vsi_free_irq(vsi);
>> +err_stop_tx:
>> + ice_vsi_stop_lan_tx_rings(vsi, ICE_NO_RESET, 0);
>> + if (vsi->xdp_rings)
>> + ice_vsi_stop_xdp_tx_rings(vsi);
>> err_setup_rx:
>> ice_vsi_free_rx_rings(vsi);
>> err_setup_tx:
next prev parent reply other threads:[~2026-10-05 12:04 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-02 13:07 [PATCH iwl-net 00/10] ice: port missing i40e fixes Petr Oros
2026-10-02 13:07 ` [PATCH iwl-net 01/10] ice: replay UDP tunnel ports after a core or global reset Petr Oros
2026-10-03 9:52 ` Ivan Vecera
2026-10-05 10:24 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 02/10] ice: fix IRQ freeing in ice_vsi_req_irq_msix() error path Petr Oros
2026-10-03 9:53 ` Ivan Vecera
2026-10-05 10:24 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 03/10] ice: stop the LAN Tx queues when ice_vsi_open() fails Petr Oros
2026-10-03 9:54 ` Ivan Vecera
2026-10-05 12:03 ` Petr Oros [this message]
2026-10-02 13:07 ` [PATCH iwl-net 04/10] ice: restore the default XPS map after a netdev TC change Petr Oros
2026-10-03 9:55 ` Ivan Vecera
2026-10-05 10:25 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 05/10] ice: report VF tx_dropped with tx_errors instead of tx_discards Petr Oros
2026-10-03 9:55 ` Ivan Vecera
2026-10-05 10:26 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 06/10] ice: keep adding MAC filters after one that already exists Petr Oros
2026-10-03 9:55 ` Ivan Vecera
2026-10-05 10:26 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 07/10] ice: take the switch rule AQ error from the response descriptor Petr Oros
2026-10-02 13:27 ` sashiko-bot
2026-10-06 11:30 ` Petr Oros
2026-10-03 9:55 ` Ivan Vecera
2026-10-05 10:27 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 08/10] ice: detect a PF reset that does not complete Petr Oros
2026-10-03 9:55 ` Ivan Vecera
2026-10-05 10:27 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 09/10] ice: program multicast magic wake before tearing down the main VSI Petr Oros
2026-10-02 13:28 ` sashiko-bot
2026-10-06 11:38 ` Petr Oros
2026-10-03 9:56 ` Ivan Vecera
2026-10-05 10:27 ` Loktionov, Aleksandr
2026-10-02 13:07 ` [PATCH iwl-net 10/10] ice: fix unsigned stat widths Petr Oros
2026-10-02 13:12 ` Loktionov, Aleksandr
2026-10-03 9:56 ` Ivan Vecera
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=d6c9d9f1-e693-427f-8151-d7a771c63ab2@redhat.com \
--to=poros@redhat.com \
--cc=aleksander.lobakin@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=anirudh.venkataramanan@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=dan.nowlin@intel.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@kernel.org \
--cc=hawk@kernel.org \
--cc=henry.w.tieman@intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=intel-wired-lan@osuosl.org \
--cc=ivecera@redhat.com \
--cc=jbrandeb@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=kiran.patil@intel.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.swiatkowski@linux.intel.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=preethi.banala@intel.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=sdf@fomichev.me \
--cc=stephen@networkplumber.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.