[NET]: Store skb->timestamp as offset to a base timestamp
Reduces skb size by 8 bytes on 64-bit. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
25ed891019
commit
a61bbcf28a
39 changed files with 172 additions and 88 deletions
|
@ -1282,16 +1282,19 @@ static inline int sock_intr_errno(long timeo)
|
|||
static __inline__ void
|
||||
sock_recv_timestamp(struct msghdr *msg, struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
struct timeval *stamp = &skb->stamp;
|
||||
struct timeval stamp;
|
||||
|
||||
skb_get_timestamp(skb, &stamp);
|
||||
if (sock_flag(sk, SOCK_RCVTSTAMP)) {
|
||||
/* Race occurred between timestamp enabling and packet
|
||||
receiving. Fill in the current time for now. */
|
||||
if (stamp->tv_sec == 0)
|
||||
do_gettimeofday(stamp);
|
||||
if (stamp.tv_sec == 0)
|
||||
do_gettimeofday(&stamp);
|
||||
skb_set_timestamp(skb, &stamp);
|
||||
put_cmsg(msg, SOL_SOCKET, SO_TIMESTAMP, sizeof(struct timeval),
|
||||
stamp);
|
||||
&stamp);
|
||||
} else
|
||||
sk->sk_stamp = *stamp;
|
||||
sk->sk_stamp = stamp;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue