diff options
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/hci_sock.c | 15 | ||||
-rw-r--r-- | net/bluetooth/rfcomm/sock.c | 13 | ||||
-rw-r--r-- | net/bluetooth/sco.c | 14 |
3 files changed, 15 insertions, 27 deletions
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c index 07f073935811..6a93614f2c49 100644 --- a/net/bluetooth/hci_sock.c +++ b/net/bluetooth/hci_sock.c | |||
@@ -70,14 +70,13 @@ static struct bt_sock_list hci_sk_list = { | |||
70 | void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb) | 70 | void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb) |
71 | { | 71 | { |
72 | struct sock *sk; | 72 | struct sock *sk; |
73 | struct hlist_node *node; | ||
74 | struct sk_buff *skb_copy = NULL; | 73 | struct sk_buff *skb_copy = NULL; |
75 | 74 | ||
76 | BT_DBG("hdev %p len %d", hdev, skb->len); | 75 | BT_DBG("hdev %p len %d", hdev, skb->len); |
77 | 76 | ||
78 | read_lock(&hci_sk_list.lock); | 77 | read_lock(&hci_sk_list.lock); |
79 | 78 | ||
80 | sk_for_each(sk, node, &hci_sk_list.head) { | 79 | sk_for_each(sk, &hci_sk_list.head) { |
81 | struct hci_filter *flt; | 80 | struct hci_filter *flt; |
82 | struct sk_buff *nskb; | 81 | struct sk_buff *nskb; |
83 | 82 | ||
@@ -142,13 +141,12 @@ void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb) | |||
142 | void hci_send_to_control(struct sk_buff *skb, struct sock *skip_sk) | 141 | void hci_send_to_control(struct sk_buff *skb, struct sock *skip_sk) |
143 | { | 142 | { |
144 | struct sock *sk; | 143 | struct sock *sk; |
145 | struct hlist_node *node; | ||
146 | 144 | ||
147 | BT_DBG("len %d", skb->len); | 145 | BT_DBG("len %d", skb->len); |
148 | 146 | ||
149 | read_lock(&hci_sk_list.lock); | 147 | read_lock(&hci_sk_list.lock); |
150 | 148 | ||
151 | sk_for_each(sk, node, &hci_sk_list.head) { | 149 | sk_for_each(sk, &hci_sk_list.head) { |
152 | struct sk_buff *nskb; | 150 | struct sk_buff *nskb; |
153 | 151 | ||
154 | /* Skip the original socket */ | 152 | /* Skip the original socket */ |
@@ -176,7 +174,6 @@ void hci_send_to_control(struct sk_buff *skb, struct sock *skip_sk) | |||
176 | void hci_send_to_monitor(struct hci_dev *hdev, struct sk_buff *skb) | 174 | void hci_send_to_monitor(struct hci_dev *hdev, struct sk_buff *skb) |
177 | { | 175 | { |
178 | struct sock *sk; | 176 | struct sock *sk; |
179 | struct hlist_node *node; | ||
180 | struct sk_buff *skb_copy = NULL; | 177 | struct sk_buff *skb_copy = NULL; |
181 | __le16 opcode; | 178 | __le16 opcode; |
182 | 179 | ||
@@ -210,7 +207,7 @@ void hci_send_to_monitor(struct hci_dev *hdev, struct sk_buff *skb) | |||
210 | 207 | ||
211 | read_lock(&hci_sk_list.lock); | 208 | read_lock(&hci_sk_list.lock); |
212 | 209 | ||
213 | sk_for_each(sk, node, &hci_sk_list.head) { | 210 | sk_for_each(sk, &hci_sk_list.head) { |
214 | struct sk_buff *nskb; | 211 | struct sk_buff *nskb; |
215 | 212 | ||
216 | if (sk->sk_state != BT_BOUND) | 213 | if (sk->sk_state != BT_BOUND) |
@@ -251,13 +248,12 @@ void hci_send_to_monitor(struct hci_dev *hdev, struct sk_buff *skb) | |||
251 | static void send_monitor_event(struct sk_buff *skb) | 248 | static void send_monitor_event(struct sk_buff *skb) |
252 | { | 249 | { |
253 | struct sock *sk; | 250 | struct sock *sk; |
254 | struct hlist_node *node; | ||
255 | 251 | ||
256 | BT_DBG("len %d", skb->len); | 252 | BT_DBG("len %d", skb->len); |
257 | 253 | ||
258 | read_lock(&hci_sk_list.lock); | 254 | read_lock(&hci_sk_list.lock); |
259 | 255 | ||
260 | sk_for_each(sk, node, &hci_sk_list.head) { | 256 | sk_for_each(sk, &hci_sk_list.head) { |
261 | struct sk_buff *nskb; | 257 | struct sk_buff *nskb; |
262 | 258 | ||
263 | if (sk->sk_state != BT_BOUND) | 259 | if (sk->sk_state != BT_BOUND) |
@@ -393,11 +389,10 @@ void hci_sock_dev_event(struct hci_dev *hdev, int event) | |||
393 | 389 | ||
394 | if (event == HCI_DEV_UNREG) { | 390 | if (event == HCI_DEV_UNREG) { |
395 | struct sock *sk; | 391 | struct sock *sk; |
396 | struct hlist_node *node; | ||
397 | 392 | ||
398 | /* Detach sockets from device */ | 393 | /* Detach sockets from device */ |
399 | read_lock(&hci_sk_list.lock); | 394 | read_lock(&hci_sk_list.lock); |
400 | sk_for_each(sk, node, &hci_sk_list.head) { | 395 | sk_for_each(sk, &hci_sk_list.head) { |
401 | bh_lock_sock_nested(sk); | 396 | bh_lock_sock_nested(sk); |
402 | if (hci_pi(sk)->hdev == hdev) { | 397 | if (hci_pi(sk)->hdev == hdev) { |
403 | hci_pi(sk)->hdev = NULL; | 398 | hci_pi(sk)->hdev = NULL; |
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c index ce3f6658f4b2..c23bae86263b 100644 --- a/net/bluetooth/rfcomm/sock.c +++ b/net/bluetooth/rfcomm/sock.c | |||
@@ -107,15 +107,14 @@ static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err) | |||
107 | static struct sock *__rfcomm_get_sock_by_addr(u8 channel, bdaddr_t *src) | 107 | static struct sock *__rfcomm_get_sock_by_addr(u8 channel, bdaddr_t *src) |
108 | { | 108 | { |
109 | struct sock *sk = NULL; | 109 | struct sock *sk = NULL; |
110 | struct hlist_node *node; | ||
111 | 110 | ||
112 | sk_for_each(sk, node, &rfcomm_sk_list.head) { | 111 | sk_for_each(sk, &rfcomm_sk_list.head) { |
113 | if (rfcomm_pi(sk)->channel == channel && | 112 | if (rfcomm_pi(sk)->channel == channel && |
114 | !bacmp(&bt_sk(sk)->src, src)) | 113 | !bacmp(&bt_sk(sk)->src, src)) |
115 | break; | 114 | break; |
116 | } | 115 | } |
117 | 116 | ||
118 | return node ? sk : NULL; | 117 | return sk ? sk : NULL; |
119 | } | 118 | } |
120 | 119 | ||
121 | /* Find socket with channel and source bdaddr. | 120 | /* Find socket with channel and source bdaddr. |
@@ -124,11 +123,10 @@ static struct sock *__rfcomm_get_sock_by_addr(u8 channel, bdaddr_t *src) | |||
124 | static struct sock *rfcomm_get_sock_by_channel(int state, u8 channel, bdaddr_t *src) | 123 | static struct sock *rfcomm_get_sock_by_channel(int state, u8 channel, bdaddr_t *src) |
125 | { | 124 | { |
126 | struct sock *sk = NULL, *sk1 = NULL; | 125 | struct sock *sk = NULL, *sk1 = NULL; |
127 | struct hlist_node *node; | ||
128 | 126 | ||
129 | read_lock(&rfcomm_sk_list.lock); | 127 | read_lock(&rfcomm_sk_list.lock); |
130 | 128 | ||
131 | sk_for_each(sk, node, &rfcomm_sk_list.head) { | 129 | sk_for_each(sk, &rfcomm_sk_list.head) { |
132 | if (state && sk->sk_state != state) | 130 | if (state && sk->sk_state != state) |
133 | continue; | 131 | continue; |
134 | 132 | ||
@@ -145,7 +143,7 @@ static struct sock *rfcomm_get_sock_by_channel(int state, u8 channel, bdaddr_t * | |||
145 | 143 | ||
146 | read_unlock(&rfcomm_sk_list.lock); | 144 | read_unlock(&rfcomm_sk_list.lock); |
147 | 145 | ||
148 | return node ? sk : sk1; | 146 | return sk ? sk : sk1; |
149 | } | 147 | } |
150 | 148 | ||
151 | static void rfcomm_sock_destruct(struct sock *sk) | 149 | static void rfcomm_sock_destruct(struct sock *sk) |
@@ -970,11 +968,10 @@ done: | |||
970 | static int rfcomm_sock_debugfs_show(struct seq_file *f, void *p) | 968 | static int rfcomm_sock_debugfs_show(struct seq_file *f, void *p) |
971 | { | 969 | { |
972 | struct sock *sk; | 970 | struct sock *sk; |
973 | struct hlist_node *node; | ||
974 | 971 | ||
975 | read_lock(&rfcomm_sk_list.lock); | 972 | read_lock(&rfcomm_sk_list.lock); |
976 | 973 | ||
977 | sk_for_each(sk, node, &rfcomm_sk_list.head) { | 974 | sk_for_each(sk, &rfcomm_sk_list.head) { |
978 | seq_printf(f, "%pMR %pMR %d %d\n", | 975 | seq_printf(f, "%pMR %pMR %d %d\n", |
979 | &bt_sk(sk)->src, &bt_sk(sk)->dst, | 976 | &bt_sk(sk)->src, &bt_sk(sk)->dst, |
980 | sk->sk_state, rfcomm_pi(sk)->channel); | 977 | sk->sk_state, rfcomm_pi(sk)->channel); |
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c index b5178d62064e..79d87d8d4f51 100644 --- a/net/bluetooth/sco.c +++ b/net/bluetooth/sco.c | |||
@@ -259,10 +259,9 @@ drop: | |||
259 | /* -------- Socket interface ---------- */ | 259 | /* -------- Socket interface ---------- */ |
260 | static struct sock *__sco_get_sock_listen_by_addr(bdaddr_t *ba) | 260 | static struct sock *__sco_get_sock_listen_by_addr(bdaddr_t *ba) |
261 | { | 261 | { |
262 | struct hlist_node *node; | ||
263 | struct sock *sk; | 262 | struct sock *sk; |
264 | 263 | ||
265 | sk_for_each(sk, node, &sco_sk_list.head) { | 264 | sk_for_each(sk, &sco_sk_list.head) { |
266 | if (sk->sk_state != BT_LISTEN) | 265 | if (sk->sk_state != BT_LISTEN) |
267 | continue; | 266 | continue; |
268 | 267 | ||
@@ -279,11 +278,10 @@ static struct sock *__sco_get_sock_listen_by_addr(bdaddr_t *ba) | |||
279 | static struct sock *sco_get_sock_listen(bdaddr_t *src) | 278 | static struct sock *sco_get_sock_listen(bdaddr_t *src) |
280 | { | 279 | { |
281 | struct sock *sk = NULL, *sk1 = NULL; | 280 | struct sock *sk = NULL, *sk1 = NULL; |
282 | struct hlist_node *node; | ||
283 | 281 | ||
284 | read_lock(&sco_sk_list.lock); | 282 | read_lock(&sco_sk_list.lock); |
285 | 283 | ||
286 | sk_for_each(sk, node, &sco_sk_list.head) { | 284 | sk_for_each(sk, &sco_sk_list.head) { |
287 | if (sk->sk_state != BT_LISTEN) | 285 | if (sk->sk_state != BT_LISTEN) |
288 | continue; | 286 | continue; |
289 | 287 | ||
@@ -298,7 +296,7 @@ static struct sock *sco_get_sock_listen(bdaddr_t *src) | |||
298 | 296 | ||
299 | read_unlock(&sco_sk_list.lock); | 297 | read_unlock(&sco_sk_list.lock); |
300 | 298 | ||
301 | return node ? sk : sk1; | 299 | return sk ? sk : sk1; |
302 | } | 300 | } |
303 | 301 | ||
304 | static void sco_sock_destruct(struct sock *sk) | 302 | static void sco_sock_destruct(struct sock *sk) |
@@ -951,14 +949,13 @@ static void sco_conn_ready(struct sco_conn *conn) | |||
951 | int sco_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, __u8 *flags) | 949 | int sco_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, __u8 *flags) |
952 | { | 950 | { |
953 | struct sock *sk; | 951 | struct sock *sk; |
954 | struct hlist_node *node; | ||
955 | int lm = 0; | 952 | int lm = 0; |
956 | 953 | ||
957 | BT_DBG("hdev %s, bdaddr %pMR", hdev->name, bdaddr); | 954 | BT_DBG("hdev %s, bdaddr %pMR", hdev->name, bdaddr); |
958 | 955 | ||
959 | /* Find listening sockets */ | 956 | /* Find listening sockets */ |
960 | read_lock(&sco_sk_list.lock); | 957 | read_lock(&sco_sk_list.lock); |
961 | sk_for_each(sk, node, &sco_sk_list.head) { | 958 | sk_for_each(sk, &sco_sk_list.head) { |
962 | if (sk->sk_state != BT_LISTEN) | 959 | if (sk->sk_state != BT_LISTEN) |
963 | continue; | 960 | continue; |
964 | 961 | ||
@@ -1018,11 +1015,10 @@ drop: | |||
1018 | static int sco_debugfs_show(struct seq_file *f, void *p) | 1015 | static int sco_debugfs_show(struct seq_file *f, void *p) |
1019 | { | 1016 | { |
1020 | struct sock *sk; | 1017 | struct sock *sk; |
1021 | struct hlist_node *node; | ||
1022 | 1018 | ||
1023 | read_lock(&sco_sk_list.lock); | 1019 | read_lock(&sco_sk_list.lock); |
1024 | 1020 | ||
1025 | sk_for_each(sk, node, &sco_sk_list.head) { | 1021 | sk_for_each(sk, &sco_sk_list.head) { |
1026 | seq_printf(f, "%pMR %pMR %d\n", &bt_sk(sk)->src, | 1022 | seq_printf(f, "%pMR %pMR %d\n", &bt_sk(sk)->src, |
1027 | &bt_sk(sk)->dst, sk->sk_state); | 1023 | &bt_sk(sk)->dst, sk->sk_state); |
1028 | } | 1024 | } |