|
@@ -1730,7 +1730,7 @@ u32 tcp_tso_autosize(const struct sock *sk, unsigned int mss_now,
|
|
|
*/
|
|
|
segs = max_t(u32, bytes / mss_now, min_tso_segs);
|
|
|
|
|
|
- return min_t(u32, segs, sk->sk_gso_max_segs);
|
|
|
+ return segs;
|
|
|
}
|
|
|
EXPORT_SYMBOL(tcp_tso_autosize);
|
|
|
|
|
@@ -1742,9 +1742,10 @@ static u32 tcp_tso_segs(struct sock *sk, unsigned int mss_now)
|
|
|
const struct tcp_congestion_ops *ca_ops = inet_csk(sk)->icsk_ca_ops;
|
|
|
u32 tso_segs = ca_ops->tso_segs_goal ? ca_ops->tso_segs_goal(sk) : 0;
|
|
|
|
|
|
- return tso_segs ? :
|
|
|
- tcp_tso_autosize(sk, mss_now,
|
|
|
- sock_net(sk)->ipv4.sysctl_tcp_min_tso_segs);
|
|
|
+ if (!tso_segs)
|
|
|
+ tso_segs = tcp_tso_autosize(sk, mss_now,
|
|
|
+ sock_net(sk)->ipv4.sysctl_tcp_min_tso_segs);
|
|
|
+ return min_t(u32, tso_segs, sk->sk_gso_max_segs);
|
|
|
}
|
|
|
|
|
|
/* Returns the portion of skb which can be sent right away */
|