Ignore:
Timestamp:
Apr 21, 2017, 4:28:29 AM (3 months ago)
Author:
brainslayer
Message:

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-4.4/drivers/net/ethernet/ibm/ibmveth.c

    r31884 r31885  
    11801180static void ibmveth_rx_mss_helper(struct sk_buff *skb, u16 mss, int lrg_pkt)
    11811181{
     1182        struct tcphdr *tcph;
    11821183        int offset = 0;
     1184        int hdr_len;
    11831185
    11841186        /* only TCP packets will be aggregated */
     
    12071209         * expect that the mss will be written to the tcp header checksum.
    12081210         */
     1211        tcph = (struct tcphdr *)(skb->data + offset);
    12091212        if (lrg_pkt) {
    12101213                skb_shinfo(skb)->gso_size = mss;
    12111214        } else if (offset) {
    1212                 struct tcphdr *tcph = (struct tcphdr *)(skb->data + offset);
    1213 
    12141215                skb_shinfo(skb)->gso_size = ntohs(tcph->check);
    12151216                tcph->check = 0;
     1217        }
     1218
     1219        if (skb_shinfo(skb)->gso_size) {
     1220                hdr_len = offset + tcph->doff * 4;
     1221                skb_shinfo(skb)->gso_segs =
     1222                                DIV_ROUND_UP(skb->len - hdr_len,
     1223                                             skb_shinfo(skb)->gso_size);
    12161224        }
    12171225}
Note: See TracChangeset for help on using the changeset viewer.