aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/pktgen.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-16 16:11:28 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-16 16:11:28 -0800
commit138a6d7ea2deb3080116a4f99019e181b62e5ce5 (patch)
tree424622059405352935fbf1dde015a1e130b56198 /net/core/pktgen.c
parent4fc6069e7df873bda9baabe0fa9f0be23363159a (diff)
parent319e2e3f63c348a9b66db4667efa73178e18b17d (diff)
downloadlinux-138a6d7ea2deb3080116a4f99019e181b62e5ce5.tar.gz
Merge 3.13-rc4 into char-misc-next
We want these fixes in here.
Diffstat (limited to 'net/core/pktgen.c')
-rw-r--r--net/core/pktgen.c7
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 *) &eth[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;