Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
[linux-2.6-microblaze.git] / net / bluetooth / hci_sock.c
index caf38a8..251b912 100644 (file)
@@ -52,7 +52,7 @@ struct hci_pinfo {
        struct bt_sock    bt;
        struct hci_dev    *hdev;
        struct hci_filter filter;
-       __u32             cmsg_mask;
+       __u             cmsg_mask;
        unsigned short    channel;
        unsigned long     flags;
        __u32             cookie;
@@ -443,8 +443,7 @@ static struct sk_buff *create_monitor_event(struct hci_dev *hdev, int event)
        case HCI_DEV_SETUP:
                if (hdev->manufacturer == 0xffff)
                        return NULL;
-
-               /* fall through */
+               fallthrough;
 
        case HCI_DEV_UP:
                skb = bt_skb_alloc(HCI_MON_INDEX_INFO_SIZE, GFP_ATOMIC);
@@ -1399,7 +1398,7 @@ done:
 static void hci_sock_cmsg(struct sock *sk, struct msghdr *msg,
                          struct sk_buff *skb)
 {
-       __u32 mask = hci_pi(sk)->cmsg_mask;
+       __u8 mask = hci_pi(sk)->cmsg_mask;
 
        if (mask & HCI_CMSG_DIR) {
                int incoming = bt_cb(skb)->incoming;
@@ -1842,7 +1841,7 @@ drop:
 }
 
 static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
-                              char __user *optval, unsigned int len)
+                              sockptr_t optval, unsigned int len)
 {
        struct hci_ufilter uf = { .opcode = 0 };
        struct sock *sk = sock->sk;
@@ -1862,7 +1861,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
 
        switch (optname) {
        case HCI_DATA_DIR:
-               if (get_user(opt, (int __user *)optval)) {
+               if (copy_from_sockptr(&opt, optval, sizeof(opt))) {
                        err = -EFAULT;
                        break;
                }
@@ -1874,7 +1873,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
                break;
 
        case HCI_TIME_STAMP:
-               if (get_user(opt, (int __user *)optval)) {
+               if (copy_from_sockptr(&opt, optval, sizeof(opt))) {
                        err = -EFAULT;
                        break;
                }
@@ -1896,7 +1895,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
                }
 
                len = min_t(unsigned int, len, sizeof(uf));
-               if (copy_from_user(&uf, optval, len)) {
+               if (copy_from_sockptr(&uf, optval, len)) {
                        err = -EFAULT;
                        break;
                }