Message ID | 20220427204147.1310161-1-eric.dumazet@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | f3412b3879b4f7c4313b186b03940d4791345534 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: make sure net_rx_action() calls skb_defer_free_flush() | expand |
On Wed, Apr 27, 2022 at 01:41:47PM -0700, Eric Dumazet wrote: > From: Eric Dumazet <edumazet@google.com> > > I missed a stray return; in net_rx_action(), which very well > is taken whenever trigger_rx_softirq() has been called on > a cpu that is no longer receiving network packets, > or receiving too few of them. > > Fixes: 68822bdf76f1 ("net: generalize skb freeing deferral to per-cpu lists") > Signed-off-by: Eric Dumazet <edumazet@google.com> > Reported-by: Ido Schimmel <idosch@nvidia.com> Tested-by: Ido Schimmel <idosch@nvidia.com> Thanks!
Hello: This patch was applied to netdev/net-next.git (master) by Paolo Abeni <pabeni@redhat.com>: On Wed, 27 Apr 2022 13:41:47 -0700 you wrote: > From: Eric Dumazet <edumazet@google.com> > > I missed a stray return; in net_rx_action(), which very well > is taken whenever trigger_rx_softirq() has been called on > a cpu that is no longer receiving network packets, > or receiving too few of them. > > [...] Here is the summary with links: - [net-next] net: make sure net_rx_action() calls skb_defer_free_flush() https://git.kernel.org/netdev/net-next/c/f3412b3879b4 You are awesome, thank you!
diff --git a/net/core/dev.c b/net/core/dev.c index 611bd719706412723561c27753150b27e1dc4e7a..e09cd202fc579dfe2313243e20def8044aafafa2 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -6617,7 +6617,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) if (list_empty(&list)) { if (!sd_has_rps_ipi_waiting(sd) && list_empty(&repoll)) - return; + goto end; break; } @@ -6644,6 +6644,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) __raise_softirq_irqoff(NET_RX_SOFTIRQ); net_rps_action_and_irq_enable(sd); +end: skb_defer_free_flush(sd); }