|
@@ -935,6 +935,10 @@ alloc_new_skb:
|
|
sk->sk_allocation);
|
|
sk->sk_allocation);
|
|
if (unlikely(skb == NULL))
|
|
if (unlikely(skb == NULL))
|
|
err = -ENOBUFS;
|
|
err = -ENOBUFS;
|
|
|
|
+ else
|
|
|
|
+ /* only the initial fragment is
|
|
|
|
+ time stamped */
|
|
|
|
+ ipc->shtx.flags = 0;
|
|
}
|
|
}
|
|
if (skb == NULL)
|
|
if (skb == NULL)
|
|
goto error;
|
|
goto error;
|
|
@@ -945,6 +949,7 @@ alloc_new_skb:
|
|
skb->ip_summed = csummode;
|
|
skb->ip_summed = csummode;
|
|
skb->csum = 0;
|
|
skb->csum = 0;
|
|
skb_reserve(skb, hh_len);
|
|
skb_reserve(skb, hh_len);
|
|
|
|
+ *skb_tx(skb) = ipc->shtx;
|
|
|
|
|
|
/*
|
|
/*
|
|
* Find where to start putting bytes.
|
|
* Find where to start putting bytes.
|
|
@@ -1364,6 +1369,7 @@ void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *ar
|
|
|
|
|
|
daddr = ipc.addr = rt->rt_src;
|
|
daddr = ipc.addr = rt->rt_src;
|
|
ipc.opt = NULL;
|
|
ipc.opt = NULL;
|
|
|
|
+ ipc.shtx.flags = 0;
|
|
|
|
|
|
if (replyopts.opt.optlen) {
|
|
if (replyopts.opt.optlen) {
|
|
ipc.opt = &replyopts.opt;
|
|
ipc.opt = &replyopts.opt;
|