Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 237493
b: refs/heads/master
c: a693e69
h: refs/heads/master
i:
  237491: f6b70d7
v: v3
  • Loading branch information
Anders Berggren authored and David S. Miller committed Feb 28, 2011
1 parent d66d36c commit 405ed88
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: eaaa3a7c4da2bdc48e536bb750860253150cb931
refs/heads/master: a693e69897e7811e2790295f38a0ce3a92c4b45c
17 changes: 17 additions & 0 deletions trunk/net/ipv6/ip6_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -1118,6 +1118,7 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
int err;
int offset = 0;
int csummode = CHECKSUM_NONE;
__u8 tx_flags = 0;

if (flags&MSG_PROBE)
return 0;
Expand Down Expand Up @@ -1202,6 +1203,13 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
}
}

/* For UDP, check if TX timestamp is enabled */
if (sk->sk_type == SOCK_DGRAM) {
err = sock_tx_timestamp(sk, &tx_flags);
if (err)
goto error;
}

/*
* Let's try using as much space as possible.
* Use MTU if total length of the message fits into the MTU.
Expand Down Expand Up @@ -1306,6 +1314,12 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
sk->sk_allocation);
if (unlikely(skb == NULL))
err = -ENOBUFS;
else {
/* Only the initial fragment
* is time stamped.
*/
tx_flags = 0;
}
}
if (skb == NULL)
goto error;
Expand All @@ -1317,6 +1331,9 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
/* reserve for fragmentation */
skb_reserve(skb, hh_len+sizeof(struct frag_hdr));

if (sk->sk_type == SOCK_DGRAM)
skb_shinfo(skb)->tx_flags = tx_flags;

/*
* Find where to start putting bytes
*/
Expand Down

0 comments on commit 405ed88

Please sign in to comment.