diff options
| -rw-r--r-- | net/bluetooth/hci_sock.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c index d16ca8e53700..5ccea5fbd236 100644 --- a/net/bluetooth/hci_sock.c +++ b/net/bluetooth/hci_sock.c | |||
| @@ -348,16 +348,17 @@ static inline void hci_sock_cmsg(struct sock *sk, struct msghdr *msg, struct sk_ | |||
| 348 | 348 | ||
| 349 | skb_get_timestamp(skb, &tv); | 349 | skb_get_timestamp(skb, &tv); |
| 350 | 350 | ||
| 351 | data = &tv; | ||
| 352 | len = sizeof(tv); | ||
| 353 | #ifdef CONFIG_COMPAT | ||
| 351 | if (msg->msg_flags & MSG_CMSG_COMPAT) { | 354 | if (msg->msg_flags & MSG_CMSG_COMPAT) { |
| 352 | struct compat_timeval ctv; | 355 | struct compat_timeval ctv; |
| 353 | ctv.tv_sec = tv.tv_sec; | 356 | ctv.tv_sec = tv.tv_sec; |
| 354 | ctv.tv_usec = tv.tv_usec; | 357 | ctv.tv_usec = tv.tv_usec; |
| 355 | data = &ctv; | 358 | data = &ctv; |
| 356 | len = sizeof(ctv); | 359 | len = sizeof(ctv); |
| 357 | } else { | ||
| 358 | data = &tv; | ||
| 359 | len = sizeof(tv); | ||
| 360 | } | 360 | } |
| 361 | #endif | ||
| 361 | 362 | ||
| 362 | put_cmsg(msg, SOL_HCI, HCI_CMSG_TSTAMP, len, data); | 363 | put_cmsg(msg, SOL_HCI, HCI_CMSG_TSTAMP, len, data); |
| 363 | } | 364 | } |
