diff mbox series

[net-next] net: make sure net_rx_action() calls skb_defer_free_flush()

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

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 7 this patch: 7
netdev/cc_maintainers warning 1 maintainers not CCed: petrm@nvidia.com
netdev/build_clang success Errors and warnings before: 9 this patch: 9
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 7 this patch: 7
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 15 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Eric Dumazet April 27, 2022, 8:41 p.m. UTC
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>
---
 net/core/dev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Ido Schimmel April 28, 2022, 6:08 a.m. UTC | #1
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!
patchwork-bot+netdevbpf@kernel.org April 28, 2022, 10 a.m. UTC | #2
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 mbox series

Patch

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);
 }