Re: [PATCH] ipv4/mptcp: fix divide error

From: Mat Martineau
Date: Wed Aug 25 2021 - 13:56:26 EST



On Tue, 24 Aug 2021, Jiang Biao wrote:

Hi,

On Tue, 24 Aug 2021 at 15:36, Matthieu Baerts
<matthieu.baerts@xxxxxxxxxxxx> wrote:

Hi Jiang,

On 24/08/2021 09:19, Jiang Biao wrote:

(...)

There is a fix divide error reported,
divide error: 0000 [#1] PREEMPT SMP KASAN
RIP: 0010:tcp_tso_autosize build/../net/ipv4/tcp_output.c:1975 [inline]
RIP: 0010:tcp_tso_segs+0x14f/0x250 build/../net/ipv4/tcp_output.c:1992

Thank you for this patch and validating MPTCP on your side!

This issue is actively tracked on our Github project [1] and a patch is
already in our tree [2] but still under validation.
It's introduced by non-initialized info->mss_now in __mptcp_push_pending.
Fix it by adding protection in mptcp_push_release.

Indeed, you are right, info->mss_now can be set to 0 in some cases but
that's not normal.

Instead of adding a protection here, we preferred fixing the root cause,
see [2]. Do not hesitate to have a look at the other patch and comment
there if you don't agree with this version.
Except if [2] is difficult to backport, I think we don't need your extra
protection. WDYT?

Agreed, fixing the root cause is much better.
Thanks for the reply.


Hi Jiang -

Could you try cherry-picking this commit to see if it eliminates the error in your system?

https://github.com/multipath-tcp/mptcp_net-next/commit/9ef5aea5a794f4a369e26ed816e9c80cdc5a5f86


Thanks!

--
Mat Martineau
Intel