From 9af2735734fce61eaf9bdb49fff218e6548af6f2 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 27 Apr 2019 18:56:30 +0200 Subject: [PATCH] kernel: fix regression on 4.19 with 613-netfilter_optional_tcp_window_check.patch (FS#2253) Since ct->proto.tcp.last_win isn't updated when nf_ct_tcp_no_window_check is enabled, the retransmission timeout check needs to be bypassed. Based on patch by Rob Mosher Signed-off-by: Felix Fietkau --- .../613-netfilter_optional_tcp_window_check.patch | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch b/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch index aa533093940d..2bc48f87cf72 100644 --- a/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch +++ b/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch @@ -28,6 +28,15 @@ Signed-off-by: Felix Fietkau /* * Get the required data from the packet. */ +@@ -1057,7 +1063,7 @@ static int tcp_packet(struct nf_conn *ct + IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED && + timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK]) + timeout = timeouts[TCP_CONNTRACK_UNACK]; +- else if (ct->proto.tcp.last_win == 0 && ++ else if (!nf_ct_tcp_no_window_check && ct->proto.tcp.last_win == 0 && + timeouts[new_state] > timeouts[TCP_CONNTRACK_RETRANS]) + timeout = timeouts[TCP_CONNTRACK_RETRANS]; + else @@ -1506,6 +1512,13 @@ static struct ctl_table tcp_sysctl_table .mode = 0644, .proc_handler = proc_dointvec, -- 2.30.2