r8169: improve handling of TD_MSS_MAX
If the mtu is greater than TD_MSS_MAX, then TSO is disabled, see rtl8169_fix_features(). Because mss is less than mtu, we can't have the case mss > TD_MSS_MAX in the TSO path. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3288dffc5d
commit
4abc3c0481
@ -4106,7 +4106,7 @@ static void rtl8169_tso_csum_v1(struct sk_buff *skb, u32 *opts)
|
||||
|
||||
if (mss) {
|
||||
opts[0] |= TD_LSO;
|
||||
opts[0] |= min(mss, TD_MSS_MAX) << TD0_MSS_SHIFT;
|
||||
opts[0] |= mss << TD0_MSS_SHIFT;
|
||||
} else if (skb->ip_summed == CHECKSUM_PARTIAL) {
|
||||
const struct iphdr *ip = ip_hdr(skb);
|
||||
|
||||
@ -4145,7 +4145,7 @@ static bool rtl8169_tso_csum_v2(struct rtl8169_private *tp,
|
||||
}
|
||||
|
||||
opts[0] |= transport_offset << GTTCPHO_SHIFT;
|
||||
opts[1] |= min(mss, TD_MSS_MAX) << TD1_MSS_SHIFT;
|
||||
opts[1] |= mss << TD1_MSS_SHIFT;
|
||||
} else if (skb->ip_summed == CHECKSUM_PARTIAL) {
|
||||
u8 ip_protocol;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user