diff options
author | Rob Herring <robh@kernel.org> | 2014-01-17 16:01:27 -0600 |
---|---|---|
committer | Rob Herring <robh@kernel.org> | 2014-01-17 16:01:27 -0600 |
commit | 361128fcbf30f590a05c8e8789155364f37367db (patch) | |
tree | 7f7973599e286dfd48ea724a5b7fb4bca76b294e /net/core/pktgen.c | |
parent | e2897d7e0b0460dca91b52d55ce41c888363502d (diff) | |
parent | 482c43419fc204b4b658fa4acb80cd502e5fcbac (diff) | |
download | linux-361128fcbf30f590a05c8e8789155364f37367db.tar.bz2 |
Merge remote-tracking branch 'grant/devicetree/next' into for-3.14
Diffstat (limited to 'net/core/pktgen.c')
-rw-r--r-- | net/core/pktgen.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 261357a66300..a797fff7f222 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -2527,6 +2527,8 @@ static int process_ipsec(struct pktgen_dev *pkt_dev, if (x) { int ret; __u8 *eth; + struct iphdr *iph; + nhead = x->props.header_len - skb_headroom(skb); if (nhead > 0) { ret = pskb_expand_head(skb, nhead, 0, GFP_ATOMIC); @@ -2548,6 +2550,11 @@ static int process_ipsec(struct pktgen_dev *pkt_dev, eth = (__u8 *) skb_push(skb, ETH_HLEN); memcpy(eth, pkt_dev->hh, 12); *(u16 *) ð[12] = protocol; + + /* Update IPv4 header len as well as checksum value */ + iph = ip_hdr(skb); + iph->tot_len = htons(skb->len - ETH_HLEN); + ip_send_check(iph); } } return 1; |