2022-09-08 23:44:54

by Peilin Ye

[permalink] [raw]
Subject: [PATCH net] tcp: Use WARN_ON_ONCE() in tcp_read_skb()

From: Peilin Ye <[email protected]>

Prevent tcp_read_skb() from flooding the syslog.

Suggested-by: Jakub Sitnicki <[email protected]>
Signed-off-by: Peilin Ye <[email protected]>
---
net/ipv4/tcp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 8230be00ecca..9251c99d3cfd 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1766,7 +1766,7 @@ int tcp_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
return 0;

__skb_unlink(skb, &sk->sk_receive_queue);
- WARN_ON(!skb_set_owner_sk_safe(skb, sk));
+ WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk));
copied = recv_actor(sk, skb);
if (copied >= 0) {
seq += copied;
--
2.20.1


2022-09-13 19:11:54

by Peilin Ye

[permalink] [raw]
Subject: [PATCH net v2] net: Use WARN_ON_ONCE() in {tcp,udp}_read_skb()

From: Peilin Ye <[email protected]>

Prevent tcp_read_skb() and udp_read_skb() from flooding the syslog.

Suggested-by: Jakub Sitnicki <[email protected]>
Signed-off-by: Peilin Ye <[email protected]>
---
change since v1:
- do the same to udp_read_skb() (Cong Wang)

Cong's tcp_read_skb() fix [1] depends on this patch.

[1] https://lore.kernel.org/netdev/[email protected]/

Thanks,
Peilin Ye

net/ipv4/tcp.c | 2 +-
net/ipv4/udp.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 8230be00ecca..9251c99d3cfd 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1766,7 +1766,7 @@ int tcp_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
return 0;

__skb_unlink(skb, &sk->sk_receive_queue);
- WARN_ON(!skb_set_owner_sk_safe(skb, sk));
+ WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk));
copied = recv_actor(sk, skb);
if (copied >= 0) {
seq += copied;
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index cd72158e953a..560d9eadeaa5 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1821,7 +1821,7 @@ int udp_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
continue;
}

- WARN_ON(!skb_set_owner_sk_safe(skb, sk));
+ WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk));
used = recv_actor(sk, skb);
if (used <= 0) {
if (!copied)
--
2.20.1

2022-09-13 19:47:43

by Peilin Ye

[permalink] [raw]
Subject: Re: [PATCH net v2] net: Use WARN_ON_ONCE() in {tcp,udp}_read_skb()

On Tue, Sep 13, 2022 at 11:40:16AM -0700, Peilin Ye wrote:
> Suggested-by: Jakub Sitnicki <[email protected]>
> Signed-off-by: Peilin Ye <[email protected]>

Sorry, I forgot to add Fixes: tag.

Those WARN_ON() come from different commits. I will split this into two
in v3 to make it easier.

Thanks,
Peilin Ye

2022-09-14 08:38:50

by Peilin Ye

[permalink] [raw]
Subject: Re: [PATCH net v2] net: Use WARN_ON_ONCE() in {tcp,udp}_read_skb()

On Tue, Sep 13, 2022 at 12:30:50PM -0700, Peilin Ye wrote:
> On Tue, Sep 13, 2022 at 11:40:16AM -0700, Peilin Ye wrote:
> > Suggested-by: Jakub Sitnicki <[email protected]>
> > Signed-off-by: Peilin Ye <[email protected]>
>
> Sorry, I forgot to add Fixes: tag.
>
> Those WARN_ON() come from different commits. I will split this into two
> in v3 to make it easier.

Cong suggested not sending v3 since this is not fixing a bug, and thus
no need to add Fixes: tags.

2022-09-16 15:32:16

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net] tcp: Use WARN_ON_ONCE() in tcp_read_skb()

Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <[email protected]>:

On Thu, 8 Sep 2022 16:15:23 -0700 you wrote:
> From: Peilin Ye <[email protected]>
>
> Prevent tcp_read_skb() from flooding the syslog.
>
> Suggested-by: Jakub Sitnicki <[email protected]>
> Signed-off-by: Peilin Ye <[email protected]>
>
> [...]

Here is the summary with links:
- [net] tcp: Use WARN_ON_ONCE() in tcp_read_skb()
https://git.kernel.org/netdev/net/c/96628951869c

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html