diff options
author | Thierry Escande <thierry.escande@linux.intel.com> | 2012-11-27 09:44:24 -0500 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2013-01-09 18:44:24 -0500 |
commit | 2c2d45bdcb7063ef58dc2c27d72026c394a8f584 (patch) | |
tree | 8f2e39c41056cfbd5465720dd03147e217dc7dd6 /net/nfc | |
parent | e7f767a7d9f809c494bfffffeda2bbdbfec110b4 (diff) |
NFC: Add support for SO_TIMESTAMP LLCP socket option
Set timestamp in sent and received sk_buffs. timestamp is then put in
msghdr structure in llcp_sock_recvmsg().
Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/llcp/commands.c | 2 | ||||
-rw-r--r-- | net/nfc/llcp/llcp.c | 4 | ||||
-rw-r--r-- | net/nfc/llcp/sock.c | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/net/nfc/llcp/commands.c b/net/nfc/llcp/commands.c index df24be48d4da..c6bc3bd95052 100644 --- a/net/nfc/llcp/commands.c +++ b/net/nfc/llcp/commands.c | |||
@@ -304,6 +304,8 @@ int nfc_llcp_send_symm(struct nfc_dev *dev) | |||
304 | 304 | ||
305 | skb = llcp_add_header(skb, 0, 0, LLCP_PDU_SYMM); | 305 | skb = llcp_add_header(skb, 0, 0, LLCP_PDU_SYMM); |
306 | 306 | ||
307 | __net_timestamp(skb); | ||
308 | |||
307 | nfc_llcp_send_to_raw_sock(local, skb, NFC_LLCP_DIRECTION_TX); | 309 | nfc_llcp_send_to_raw_sock(local, skb, NFC_LLCP_DIRECTION_TX); |
308 | 310 | ||
309 | return nfc_data_exchange(dev, local->target_idx, skb, | 311 | return nfc_data_exchange(dev, local->target_idx, skb, |
diff --git a/net/nfc/llcp/llcp.c b/net/nfc/llcp/llcp.c index ec43914c92a9..6c5971437826 100644 --- a/net/nfc/llcp/llcp.c +++ b/net/nfc/llcp/llcp.c | |||
@@ -668,6 +668,8 @@ static void nfc_llcp_tx_work(struct work_struct *work) | |||
668 | if (ptype == LLCP_PDU_I) | 668 | if (ptype == LLCP_PDU_I) |
669 | copy_skb = skb_copy(skb, GFP_ATOMIC); | 669 | copy_skb = skb_copy(skb, GFP_ATOMIC); |
670 | 670 | ||
671 | __net_timestamp(skb); | ||
672 | |||
671 | nfc_llcp_send_to_raw_sock(local, skb, | 673 | nfc_llcp_send_to_raw_sock(local, skb, |
672 | NFC_LLCP_DIRECTION_TX); | 674 | NFC_LLCP_DIRECTION_TX); |
673 | 675 | ||
@@ -1245,6 +1247,8 @@ static void nfc_llcp_rx_work(struct work_struct *work) | |||
1245 | print_hex_dump(KERN_DEBUG, "LLCP Rx: ", DUMP_PREFIX_OFFSET, | 1247 | print_hex_dump(KERN_DEBUG, "LLCP Rx: ", DUMP_PREFIX_OFFSET, |
1246 | 16, 1, skb->data, skb->len, true); | 1248 | 16, 1, skb->data, skb->len, true); |
1247 | 1249 | ||
1250 | __net_timestamp(skb); | ||
1251 | |||
1248 | nfc_llcp_send_to_raw_sock(local, skb, NFC_LLCP_DIRECTION_RX); | 1252 | nfc_llcp_send_to_raw_sock(local, skb, NFC_LLCP_DIRECTION_RX); |
1249 | 1253 | ||
1250 | switch (ptype) { | 1254 | switch (ptype) { |
diff --git a/net/nfc/llcp/sock.c b/net/nfc/llcp/sock.c index fea22eb41b82..ba1900700958 100644 --- a/net/nfc/llcp/sock.c +++ b/net/nfc/llcp/sock.c | |||
@@ -678,6 +678,8 @@ static int llcp_sock_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
678 | return -EFAULT; | 678 | return -EFAULT; |
679 | } | 679 | } |
680 | 680 | ||
681 | sock_recv_timestamp(msg, sk, skb); | ||
682 | |||
681 | if (sk->sk_type == SOCK_DGRAM && msg->msg_name) { | 683 | if (sk->sk_type == SOCK_DGRAM && msg->msg_name) { |
682 | struct nfc_llcp_ui_cb *ui_cb = nfc_llcp_ui_skb_cb(skb); | 684 | struct nfc_llcp_ui_cb *ui_cb = nfc_llcp_ui_skb_cb(skb); |
683 | struct sockaddr_nfc_llcp sockaddr; | 685 | struct sockaddr_nfc_llcp sockaddr; |