* [PATCH v4] tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
@ 2021-09-14 1:51 zhenggy
2021-09-14 13:30 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 2+ messages in thread
From: zhenggy @ 2021-09-14 1:51 UTC (permalink / raw)
To: ncardwell, netdev
Cc: edumazet, davem, yoshfuji, dsahern, kuba, ycheng, qitiepeng,
wujianguo, liyonglong, luchang1, zhenggy
Commit 10d3be569243 ("tcp-tso: do not split TSO packets at retransmit
time") may directly retrans a multiple segments TSO/GSO packet without
split, Since this commit, we can no longer assume that a retransmitted
packet is a single segment.
This patch fixes the tp->undo_retrans accounting in tcp_sacktag_one()
that use the actual segments(pcount) of the retransmitted packet.
Before that commit (10d3be569243), the assumption underlying the
tp->undo_retrans-- seems correct.
Fixes: 10d3be569243 ("tcp-tso: do not split TSO packets at retransmit time")
Signed-off-by: zhenggy <zhenggy@chinatelecom.cn>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
---
net/ipv4/tcp_input.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 3f7bd7a..141e85e 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1346,7 +1346,7 @@ static u8 tcp_sacktag_one(struct sock *sk,
if (dup_sack && (sacked & TCPCB_RETRANS)) {
if (tp->undo_marker && tp->undo_retrans > 0 &&
after(end_seq, tp->undo_marker))
- tp->undo_retrans--;
+ tp->undo_retrans = max_t(int, 0, tp->undo_retrans - pcount);
if ((sacked & TCPCB_SACKED_ACKED) &&
before(start_seq, state->reord))
state->reord = start_seq;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v4] tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
2021-09-14 1:51 [PATCH v4] tcp: fix tp->undo_retrans accounting in tcp_sacktag_one() zhenggy
@ 2021-09-14 13:30 ` patchwork-bot+netdevbpf
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-09-14 13:30 UTC (permalink / raw)
To: zhenggy
Cc: ncardwell, netdev, edumazet, davem, yoshfuji, dsahern, kuba,
ycheng, qitiepeng, wujianguo, liyonglong, luchang1
Hello:
This patch was applied to netdev/net.git (refs/heads/master):
On Tue, 14 Sep 2021 09:51:15 +0800 you wrote:
> Commit 10d3be569243 ("tcp-tso: do not split TSO packets at retransmit
> time") may directly retrans a multiple segments TSO/GSO packet without
> split, Since this commit, we can no longer assume that a retransmitted
> packet is a single segment.
>
> This patch fixes the tp->undo_retrans accounting in tcp_sacktag_one()
> that use the actual segments(pcount) of the retransmitted packet.
>
> [...]
Here is the summary with links:
- [v4] tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
https://git.kernel.org/netdev/net/c/4f884f396276
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-09-14 13:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-14 1:51 [PATCH v4] tcp: fix tp->undo_retrans accounting in tcp_sacktag_one() zhenggy
2021-09-14 13:30 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).