提交 9f0d2535 编写于 作者: E Eric Dumazet 提交者: Zheng Zengkai

mptcp: fix delack timer

stable inclusion
from stable-v5.10.83
commit bbd1683e795cec80acc2e5107c3d29b9c3f49297
bugzilla: 185879 https://gitee.com/openeuler/kernel/issues/I4QUVG

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=bbd1683e795cec80acc2e5107c3d29b9c3f49297

--------------------------------

[ Upstream commit ee50e67b ]

To compute the rtx timeout schedule_3rdack_retransmission() does multiple
things in the wrong way: srtt_us is measured in usec/8 and the timeout
itself is an absolute value.

Fixes: ec3edaa7 ("mptcp: Add handling of outgoing MP_JOIN requests")
Acked-by: NPaolo Abeni <pabeni@redhat.com>
Reviewed-by: NMat Martineau <mathew.j.martineau&gt;@linux.intel.com>
Signed-off-by: NEric Dumazet <edumazet@google.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NChen Jun <chenjun102@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 c801d2b3
...@@ -368,9 +368,10 @@ static void schedule_3rdack_retransmission(struct sock *sk) ...@@ -368,9 +368,10 @@ static void schedule_3rdack_retransmission(struct sock *sk)
/* reschedule with a timeout above RTT, as we must look only for drop */ /* reschedule with a timeout above RTT, as we must look only for drop */
if (tp->srtt_us) if (tp->srtt_us)
timeout = tp->srtt_us << 1; timeout = usecs_to_jiffies(tp->srtt_us >> (3 - 1));
else else
timeout = TCP_TIMEOUT_INIT; timeout = TCP_TIMEOUT_INIT;
timeout += jiffies;
WARN_ON_ONCE(icsk->icsk_ack.pending & ICSK_ACK_TIMER); WARN_ON_ONCE(icsk->icsk_ack.pending & ICSK_ACK_TIMER);
icsk->icsk_ack.pending |= ICSK_ACK_SCHED | ICSK_ACK_TIMER; icsk->icsk_ack.pending |= ICSK_ACK_SCHED | ICSK_ACK_TIMER;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册