mptcp: scheduler: Support interfaces that do not support TSO

[Upstream commit b9a46ab805291f506bf3da8c86ee5dbfceab26a4]

In the scheduler, we try to find the split-point where the segment
should be split so that it can be fully sent out immediatly.

However, there are two points to this.

First, if skb->len <= mss_now, no splitting is required. This is
actually similar to the check tso_segs > 1 in tcp_write_xmit, which
comes prior to tcp_mss_split_point. We do a similar check as well in
mptcp_write_xmit before calling tcp_mss_split_point. We cannot check
tso_segs, because it is always 1 at the mptcp-level.

Second, sk_gso_max_segs may be 0, if the NIC does not support TSO. In
this case, we should prevent max_segs in the scheduler to be 0, because
then we always exit and no progress will be made. So, in case TSO is not
supported, gso_max_segs must be equal to 1. That way the segment will be
split for this subflow at the mss-boundary as it is required.

Cc: Sébastien Barré <sebastien.barre@uclouvain.be>
Fixes: ec9db12c7554 (mptcp: Rework mptcp_write_xmit)
Reported-by: Sébastien Barré <sebastien.barre@uclouvain.be>
Tested-by: Sébastien Barré <sebastien.barre@uclouvain.be>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Signed-off-by: Sébastien Barré <sebastien.barre@uclouvain.be>