diff options
Diffstat (limited to 'net/bluetooth/af_bluetooth.c')
-rw-r--r-- | net/bluetooth/af_bluetooth.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c index 8cfb5a849841..404a8500fd03 100644 --- a/net/bluetooth/af_bluetooth.c +++ b/net/bluetooth/af_bluetooth.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <linux/errno.h> | 31 | #include <linux/errno.h> |
32 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
33 | #include <linux/sched.h> | 33 | #include <linux/sched.h> |
34 | #include <linux/slab.h> | ||
35 | #include <linux/skbuff.h> | 34 | #include <linux/skbuff.h> |
36 | #include <linux/init.h> | 35 | #include <linux/init.h> |
37 | #include <linux/poll.h> | 36 | #include <linux/poll.h> |
@@ -45,7 +44,7 @@ | |||
45 | 44 | ||
46 | /* Bluetooth sockets */ | 45 | /* Bluetooth sockets */ |
47 | #define BT_MAX_PROTO 8 | 46 | #define BT_MAX_PROTO 8 |
48 | static struct net_proto_family *bt_proto[BT_MAX_PROTO]; | 47 | static const struct net_proto_family *bt_proto[BT_MAX_PROTO]; |
49 | static DEFINE_RWLOCK(bt_proto_lock); | 48 | static DEFINE_RWLOCK(bt_proto_lock); |
50 | 49 | ||
51 | static struct lock_class_key bt_lock_key[BT_MAX_PROTO]; | 50 | static struct lock_class_key bt_lock_key[BT_MAX_PROTO]; |
@@ -86,7 +85,7 @@ static inline void bt_sock_reclassify_lock(struct socket *sock, int proto) | |||
86 | bt_key_strings[proto], &bt_lock_key[proto]); | 85 | bt_key_strings[proto], &bt_lock_key[proto]); |
87 | } | 86 | } |
88 | 87 | ||
89 | int bt_sock_register(int proto, struct net_proto_family *ops) | 88 | int bt_sock_register(int proto, const struct net_proto_family *ops) |
90 | { | 89 | { |
91 | int err = 0; | 90 | int err = 0; |
92 | 91 | ||
@@ -126,7 +125,8 @@ int bt_sock_unregister(int proto) | |||
126 | } | 125 | } |
127 | EXPORT_SYMBOL(bt_sock_unregister); | 126 | EXPORT_SYMBOL(bt_sock_unregister); |
128 | 127 | ||
129 | static int bt_sock_create(struct net *net, struct socket *sock, int proto) | 128 | static int bt_sock_create(struct net *net, struct socket *sock, int proto, |
129 | int kern) | ||
130 | { | 130 | { |
131 | int err; | 131 | int err; |
132 | 132 | ||
@@ -144,7 +144,7 @@ static int bt_sock_create(struct net *net, struct socket *sock, int proto) | |||
144 | read_lock(&bt_proto_lock); | 144 | read_lock(&bt_proto_lock); |
145 | 145 | ||
146 | if (bt_proto[proto] && try_module_get(bt_proto[proto]->owner)) { | 146 | if (bt_proto[proto] && try_module_get(bt_proto[proto]->owner)) { |
147 | err = bt_proto[proto]->create(net, sock, proto); | 147 | err = bt_proto[proto]->create(net, sock, proto, kern); |
148 | bt_sock_reclassify_lock(sock, proto); | 148 | bt_sock_reclassify_lock(sock, proto); |
149 | module_put(bt_proto[proto]->owner); | 149 | module_put(bt_proto[proto]->owner); |
150 | } | 150 | } |
@@ -257,7 +257,7 @@ int bt_sock_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
257 | skb_reset_transport_header(skb); | 257 | skb_reset_transport_header(skb); |
258 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); | 258 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); |
259 | if (err == 0) | 259 | if (err == 0) |
260 | sock_recv_timestamp(msg, sk, skb); | 260 | sock_recv_ts_and_drops(msg, sk, skb); |
261 | 261 | ||
262 | skb_free_datagram(sk, skb); | 262 | skb_free_datagram(sk, skb); |
263 | 263 | ||