Message ID | 20230908135748.794163-2-bigeasy@linutronix.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add missing xdp_do_flush() invocations. | expand |
> -----Original Message----- > From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > Sent: Friday, September 8, 2023 4:58 PM > To: netdev@vger.kernel.org; bpf@vger.kernel.org > Cc: David S. Miller <davem@davemloft.net>; Alexei Starovoitov > <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; Eric Dumazet > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Jesper > Dangaard Brouer <hawk@kernel.org>; John Fastabend > <john.fastabend@gmail.com>; Paolo Abeni <pabeni@redhat.com>; Thomas > Gleixner <tglx@linutronix.de>; Sebastian Andrzej Siewior > <bigeasy@linutronix.de>; Kiyanovski, Arthur <akiyano@amazon.com>; > Arinzon, David <darinzon@amazon.com>; Dagan, Noam > <ndagan@amazon.com>; Bshara, Saeed <saeedb@amazon.com>; Agroskin, > Shay <shayagr@amazon.com> > Subject: [EXTERNAL] [PATCH net 1/4] net: ena: Flush XDP packets on error. > > CAUTION: This email originated from outside of the organization. Do not click > links or open attachments unless you can confirm the sender and know the > content is safe. > > > > xdp_do_flush() should be invoked before leaving the NAPI poll function after > a XDP-redirect. This is not the case if the driver leaves via the error path > (after having a redirect in one of its previous iterations). > > Invoke xdp_do_flush() also in the error path. > > Cc: Arthur Kiyanovski <akiyano@amazon.com> > Cc: David Arinzon <darinzon@amazon.com> > Cc: Noam Dagan <ndagan@amazon.com> > Cc: Saeed Bishara <saeedb@amazon.com> > Cc: Shay Agroskin <shayagr@amazon.com> > Fixes: a318c70ad152b ("net: ena: introduce XDP redirect implementation") > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > --- > drivers/net/ethernet/amazon/ena/ena_netdev.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c > b/drivers/net/ethernet/amazon/ena/ena_netdev.c > index ad32ca81f7ef4..f955bde10cf90 100644 > --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c > +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c > @@ -1833,6 +1833,9 @@ static int ena_clean_rx_irq(struct ena_ring > *rx_ring, struct napi_struct *napi, > return work_done; > > error: > + if (xdp_flags & ENA_XDP_REDIRECT) > + xdp_do_flush(); > + > adapter = netdev_priv(rx_ring->netdev); > > if (rc == -ENOSPC) { > -- > 2.40.1 > Thanks for submitting this change. Acked-by: Arthur Kiyanovski <akiyano@amazon.com>
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c index ad32ca81f7ef4..f955bde10cf90 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -1833,6 +1833,9 @@ static int ena_clean_rx_irq(struct ena_ring *rx_ring, struct napi_struct *napi, return work_done; error: + if (xdp_flags & ENA_XDP_REDIRECT) + xdp_do_flush(); + adapter = netdev_priv(rx_ring->netdev); if (rc == -ENOSPC) {
xdp_do_flush() should be invoked before leaving the NAPI poll function after a XDP-redirect. This is not the case if the driver leaves via the error path (after having a redirect in one of its previous iterations). Invoke xdp_do_flush() also in the error path. Cc: Arthur Kiyanovski <akiyano@amazon.com> Cc: David Arinzon <darinzon@amazon.com> Cc: Noam Dagan <ndagan@amazon.com> Cc: Saeed Bishara <saeedb@amazon.com> Cc: Shay Agroskin <shayagr@amazon.com> Fixes: a318c70ad152b ("net: ena: introduce XDP redirect implementation") Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/net/ethernet/amazon/ena/ena_netdev.c | 3 +++ 1 file changed, 3 insertions(+)