Skip to content

Commit

Permalink
[Bluetooth] Add compat handling for timestamp structure
Browse files Browse the repository at this point in the history
The timestamp structure needs special handling in case of compat
programs. Use the same wrapping method the network core uses.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Marcel Holtmann committed Sep 9, 2007
1 parent 26a4a06 commit 767c5eb
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion net/bluetooth/hci_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include <linux/skbuff.h>
#include <linux/workqueue.h>
#include <linux/interrupt.h>
#include <linux/compat.h>
#include <linux/socket.h>
#include <linux/ioctl.h>
#include <net/sock.h>
Expand Down Expand Up @@ -342,9 +343,23 @@ static inline void hci_sock_cmsg(struct sock *sk, struct msghdr *msg, struct sk_

if (mask & HCI_CMSG_TSTAMP) {
struct timeval tv;
void *data;
int len;

skb_get_timestamp(skb, &tv);
put_cmsg(msg, SOL_HCI, HCI_CMSG_TSTAMP, sizeof(tv), &tv);

if (msg->msg_flags & MSG_CMSG_COMPAT) {
struct compat_timeval ctv;
ctv.tv_sec = tv.tv_sec;
ctv.tv_usec = tv.tv_usec;
data = &ctv;
len = sizeof(ctv);
} else {
data = &tv;
len = sizeof(tv);
}

put_cmsg(msg, SOL_HCI, HCI_CMSG_TSTAMP, len, data);
}
}

Expand Down

0 comments on commit 767c5eb

Please sign in to comment.