All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Wei Fang <wei.fang@nxp.com>
Cc: "john.fastabend@gmail.com" <john.fastabend@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Shenwei Wang <shenwei.wang@nxp.com>,
	"daniel@iogearbox.net" <daniel@iogearbox.net>,
	Frank Li <frank.li@nxp.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Clark Wang <xiaoning.wang@nxp.com>,
	"ast@kernel.org" <ast@kernel.org>,
	"sdf@fomichev.me" <sdf@fomichev.me>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"edumazet@google.com" <edumazet@google.com>,
	"hawk@kernel.org" <hawk@kernel.org>,
	"bpf@vger.kernel.org" <bpf@vger.kernel.org>,
	"pabeni@redhat.com" <pabeni@redhat.com>,
	"andrew+netdev@lunn.ch" <andrew+netdev@lunn.ch>
Subject: Re: [v4,net-next,13/15] net: fec: add fec_alloc_rxq_buffers_pp() to allocate buffers from page pool
Date: Mon, 26 Jan 2026 16:18:30 -0800	[thread overview]
Message-ID: <20260126161830.58ba78b3@kernel.org> (raw)
In-Reply-To: <PAXPR04MB85104AD2673A1D58131CEBD48893A@PAXPR04MB8510.eurprd04.prod.outlook.com>

On Mon, 26 Jan 2026 02:37:01 +0000 Wei Fang wrote:
> > > +	if (is_run) {
> > > +		err = fec_enet_alloc_buffers(ndev);
> > > +		if (err) {
> > > +			netdev_err(ndev, "Failed to alloc buffers\n");
> > > +			goto err_alloc_buffers;
> > > +		}
> > > +
> > > +		fec_restart(ndev);
> > > +		napi_enable(&fep->napi);
> > > +		netif_tx_start_all_queues(ndev);
> > > +	}
> > > +
> > > +	return 0;
> > > +
> > > +err_alloc_buffers:
> > > +	if (enable) {
> > > +		xsk_pool_dma_unmap(pool, 0);
> > > +		rxq->xsk_pool = NULL;
> > > +		txq->xsk_pool = NULL;
> > > +	}
> > > +
> > > +	return err;  
> > 
> > Similarly, the err_alloc_buffers path cleans up the XSK pool state but
> > does not restore NAPI/TX or restart the device when is_run was true.
> > Does this leave the device in the same non-functional state?
> >   
> 
> The current driver does not support allocating the buffers first and then
> replacing the old buffers, so calling fec_enet_alloc_buffers() again in the
> err_alloc_buffers path may still fail and potentially make the device
> unusable. I will think about how to change this situation. Thanks.

Yes, a lot of older drivers don't. We make people improve things
whenever they try to add major features 🤷️ BTW I'm quite impressed
that AI pointed this out.

  reply	other threads:[~2026-01-27  0:18 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-23  2:21 [PATCH v4 net-next 00/15] net: fec: improve XDP copy mode and add AF_XDP zero-copy support Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 01/15] net: fec: add fec_txq_trigger_xmit() helper Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 02/15] net: fec: add fec_rx_error_check() to check RX errors Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 03/15] net: fec: add rx_shift to indicate the extra bytes padded in front of RX frame Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 04/15] net: fec: add fec_build_skb() to build a skb Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 05/15] net: fec: improve fec_enet_rx_queue() Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 06/15] net: fec: add fec_enet_rx_queue_xdp() for XDP path Wei Fang
2026-01-25 21:44   ` [v4,net-next,06/15] " Jakub Kicinski
2026-01-26  2:09     ` Wei Fang
2026-01-27  0:17       ` Jakub Kicinski
2026-01-27  1:28         ` Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 07/15] net: fec: add tx_qid parameter to fec_enet_xdp_tx_xmit() Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 08/15] net: fec: transmit XDP frames in bulk Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 09/15] net: fec: remove unnecessary NULL pointer check when clearing TX BD ring Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 10/15] net: fec: use switch statement to check the type of tx_buf Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 11/15] net: fec: remove the size parameter from fec_enet_create_page_pool() Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 12/15] net: fec: move xdp_rxq_info* APIs out of fec_enet_create_page_pool() Wei Fang
2026-01-25 21:45   ` [v4,net-next,12/15] " Jakub Kicinski
2026-01-26  2:22     ` Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 13/15] net: fec: add fec_alloc_rxq_buffers_pp() to allocate buffers from page pool Wei Fang
2026-01-25 21:45   ` [v4,net-next,13/15] " Jakub Kicinski
2026-01-26  2:37     ` Wei Fang
2026-01-27  0:18       ` Jakub Kicinski [this message]
2026-01-23  2:21 ` [PATCH v4 net-next 14/15] net: fec: improve fec_enet_tx_queue() Wei Fang
2026-01-23  2:21 ` [PATCH v4 net-next 15/15] net: fec: add AF_XDP zero-copy support Wei Fang
2026-01-25 21:45   ` [v4,net-next,15/15] " Jakub Kicinski

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=20260126161830.58ba78b3@kernel.org \
    --to=kuba@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=frank.li@nxp.com \
    --cc=hawk@kernel.org \
    --cc=imx@lists.linux.dev \
    --cc=john.fastabend@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sdf@fomichev.me \
    --cc=shenwei.wang@nxp.com \
    --cc=wei.fang@nxp.com \
    --cc=xiaoning.wang@nxp.com \
    /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.