The branch main has been updated by rscheff:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=e3b9058e5cd0f541da596624a366e14cabcf2e2a

commit e3b9058e5cd0f541da596624a366e14cabcf2e2a
Author:     Richard Scheffenegger <rsch...@freebsd.org>
AuthorDate: 2023-12-18 12:01:28 +0000
Commit:     Richard Scheffenegger <rsch...@freebsd.org>
CommitDate: 2023-12-18 12:02:22 +0000

    tcp: properly unroll sack transmission on tx error with LRD
    
    Reviewed By:           tuexen, #transport
    MFC after:             1 week
    Sponsored by:          NetApp, Inc.
    Differential Revision: https://reviews.freebsd.org/D43085
---
 sys/netinet/tcp_output.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index f5b3ff1f03b4..6016aa3b6ddc 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -1652,7 +1652,7 @@ timer:
                    ((flags & TH_SYN) == 0) &&
                    (error != EPERM)) {
                        if (sack_rxmit) {
-                               p->rxmit -= len;
+                               p->rxmit = SEQ_MIN(p->end, p->rxmit) - len;
                                tp->sackhint.sack_bytes_rexmit -= len;
                                KASSERT(tp->sackhint.sack_bytes_rexmit >= 0,
                                    ("sackhint bytes rtx >= 0"));

Reply via email to