diff options
author | John W. Linville <linville@tuxdriver.com> | 2013-11-04 14:51:28 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-11-04 14:51:28 -0500 |
commit | 87bc0728d462ae37841a550542829aa65a97e7c2 (patch) | |
tree | 266afb90f501b814c0a79f10a7afd86a6a33d631 /net/bluetooth/af_bluetooth.c | |
parent | f421436a591d34fa5279b54a96ac07d70250cc8d (diff) | |
parent | 01925efdf7e03b4b803b5c9f985163d687f7f017 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Conflicts:
drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h
Diffstat (limited to 'net/bluetooth/af_bluetooth.c')
-rw-r--r-- | net/bluetooth/af_bluetooth.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c index e6e1278dca89..1f1a1118f489 100644 --- a/net/bluetooth/af_bluetooth.c +++ b/net/bluetooth/af_bluetooth.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <net/bluetooth/bluetooth.h> | 30 | #include <net/bluetooth/bluetooth.h> |
31 | #include <linux/proc_fs.h> | 31 | #include <linux/proc_fs.h> |
32 | 32 | ||
33 | #define VERSION "2.16" | 33 | #define VERSION "2.17" |
34 | 34 | ||
35 | /* Bluetooth sockets */ | 35 | /* Bluetooth sockets */ |
36 | #define BT_MAX_PROTO 8 | 36 | #define BT_MAX_PROTO 8 |
@@ -221,12 +221,12 @@ int bt_sock_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
221 | if (flags & (MSG_OOB)) | 221 | if (flags & (MSG_OOB)) |
222 | return -EOPNOTSUPP; | 222 | return -EOPNOTSUPP; |
223 | 223 | ||
224 | msg->msg_namelen = 0; | ||
225 | |||
226 | skb = skb_recv_datagram(sk, flags, noblock, &err); | 224 | skb = skb_recv_datagram(sk, flags, noblock, &err); |
227 | if (!skb) { | 225 | if (!skb) { |
228 | if (sk->sk_shutdown & RCV_SHUTDOWN) | 226 | if (sk->sk_shutdown & RCV_SHUTDOWN) { |
227 | msg->msg_namelen = 0; | ||
229 | return 0; | 228 | return 0; |
229 | } | ||
230 | return err; | 230 | return err; |
231 | } | 231 | } |
232 | 232 | ||
@@ -238,9 +238,16 @@ int bt_sock_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
238 | 238 | ||
239 | skb_reset_transport_header(skb); | 239 | skb_reset_transport_header(skb); |
240 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); | 240 | err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); |
241 | if (err == 0) | 241 | if (err == 0) { |
242 | sock_recv_ts_and_drops(msg, sk, skb); | 242 | sock_recv_ts_and_drops(msg, sk, skb); |
243 | 243 | ||
244 | if (bt_sk(sk)->skb_msg_name) | ||
245 | bt_sk(sk)->skb_msg_name(skb, msg->msg_name, | ||
246 | &msg->msg_namelen); | ||
247 | else | ||
248 | msg->msg_namelen = 0; | ||
249 | } | ||
250 | |||
244 | skb_free_datagram(sk, skb); | 251 | skb_free_datagram(sk, skb); |
245 | 252 | ||
246 | return err ? : copied; | 253 | return err ? : copied; |
@@ -604,7 +611,7 @@ static int bt_seq_show(struct seq_file *seq, void *v) | |||
604 | struct bt_sock_list *l = s->l; | 611 | struct bt_sock_list *l = s->l; |
605 | 612 | ||
606 | if (v == SEQ_START_TOKEN) { | 613 | if (v == SEQ_START_TOKEN) { |
607 | seq_puts(seq ,"sk RefCnt Rmem Wmem User Inode Src Dst Parent"); | 614 | seq_puts(seq ,"sk RefCnt Rmem Wmem User Inode Parent"); |
608 | 615 | ||
609 | if (l->custom_seq_show) { | 616 | if (l->custom_seq_show) { |
610 | seq_putc(seq, ' '); | 617 | seq_putc(seq, ' '); |
@@ -617,15 +624,13 @@ static int bt_seq_show(struct seq_file *seq, void *v) | |||
617 | struct bt_sock *bt = bt_sk(sk); | 624 | struct bt_sock *bt = bt_sk(sk); |
618 | 625 | ||
619 | seq_printf(seq, | 626 | seq_printf(seq, |
620 | "%pK %-6d %-6u %-6u %-6u %-6lu %pMR %pMR %-6lu", | 627 | "%pK %-6d %-6u %-6u %-6u %-6lu %-6lu", |
621 | sk, | 628 | sk, |
622 | atomic_read(&sk->sk_refcnt), | 629 | atomic_read(&sk->sk_refcnt), |
623 | sk_rmem_alloc_get(sk), | 630 | sk_rmem_alloc_get(sk), |
624 | sk_wmem_alloc_get(sk), | 631 | sk_wmem_alloc_get(sk), |
625 | from_kuid(seq_user_ns(seq), sock_i_uid(sk)), | 632 | from_kuid(seq_user_ns(seq), sock_i_uid(sk)), |
626 | sock_i_ino(sk), | 633 | sock_i_ino(sk), |
627 | &bt->src, | ||
628 | &bt->dst, | ||
629 | bt->parent? sock_i_ino(bt->parent): 0LU); | 634 | bt->parent? sock_i_ino(bt->parent): 0LU); |
630 | 635 | ||
631 | if (l->custom_seq_show) { | 636 | if (l->custom_seq_show) { |