Lines Matching defs:conn
72 struct sco_conn *conn;
81 struct sco_conn *conn = container_of(work, struct sco_conn,
85 sco_conn_lock(conn);
86 sk = conn->sk;
89 sco_conn_unlock(conn);
105 if (!sco_pi(sk)->conn)
109 cancel_delayed_work(&sco_pi(sk)->conn->timeout_work);
110 schedule_delayed_work(&sco_pi(sk)->conn->timeout_work, timeout);
115 if (!sco_pi(sk)->conn)
119 cancel_delayed_work(&sco_pi(sk)->conn->timeout_work);
126 struct sco_conn *conn = hcon->sco_data;
128 if (conn) {
129 if (!conn->hcon)
130 conn->hcon = hcon;
131 return conn;
134 conn = kzalloc(sizeof(struct sco_conn), GFP_KERNEL);
135 if (!conn)
138 spin_lock_init(&conn->lock);
139 INIT_DELAYED_WORK(&conn->timeout_work, sco_sock_timeout);
141 hcon->sco_data = conn;
142 conn->hcon = hcon;
145 conn->mtu = hdev->sco_mtu;
147 conn->mtu = 60;
149 BT_DBG("hcon %p conn %p", hcon, conn);
151 return conn;
158 struct sco_conn *conn;
160 conn = sco_pi(sk)->conn;
162 BT_DBG("sk %p, conn %p, err %d", sk, conn, err);
164 if (conn) {
165 sco_conn_lock(conn);
166 conn->sk = NULL;
167 sco_pi(sk)->conn = NULL;
168 sco_conn_unlock(conn);
170 if (conn->hcon)
171 hci_conn_drop(conn->hcon);
183 struct sco_conn *conn = hcon->sco_data;
186 if (!conn)
189 BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
192 sco_conn_lock(conn);
193 sk = conn->sk;
196 sco_conn_unlock(conn);
206 /* Ensure no more work items will run before freeing conn. */
207 cancel_delayed_work_sync(&conn->timeout_work);
210 kfree(conn);
213 static void __sco_chan_add(struct sco_conn *conn, struct sock *sk,
216 BT_DBG("conn %p", conn);
218 sco_pi(sk)->conn = conn;
219 conn->sk = sk;
225 static int sco_chan_add(struct sco_conn *conn, struct sock *sk,
230 sco_conn_lock(conn);
231 if (conn->sk)
234 __sco_chan_add(conn, sk, parent);
236 sco_conn_unlock(conn);
242 struct sco_conn *conn;
273 conn = sco_conn_add(hcon);
274 if (!conn) {
282 err = sco_chan_add(conn, sk, NULL);
309 struct sco_conn *conn = sco_pi(sk)->conn;
313 if (len > conn->mtu)
318 hci_send_sco(conn->hcon, skb);
323 static void sco_recv_frame(struct sco_conn *conn, struct sk_buff *skb)
327 sco_conn_lock(conn);
328 sk = conn->sk;
329 sco_conn_unlock(conn);
440 if (sco_pi(sk)->conn->hcon) {
443 sco_conn_lock(sco_pi(sk)->conn);
444 hci_conn_drop(sco_pi(sk)->conn->hcon);
445 sco_pi(sk)->conn->hcon = NULL;
446 sco_conn_unlock(sco_pi(sk)->conn);
751 static void sco_conn_defer_accept(struct hci_conn *conn, u16 setting)
753 struct hci_dev *hdev = conn->hdev;
755 BT_DBG("conn %p", conn);
757 conn->state = BT_CONFIG;
762 bacpy(&cp.bdaddr, &conn->dst);
769 bacpy(&cp.bdaddr, &conn->dst);
770 cp.pkt_type = cpu_to_le16(conn->pkt_type);
778 if (conn->pkt_type & ESCO_2EV3)
810 sco_conn_defer_accept(pi->conn->hcon, pi->setting);
987 opts.mtu = sco_pi(sk)->conn->mtu;
1006 cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle;
1007 memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3);
1077 phys = hci_conn_get_phy(sco_pi(sk)->conn->hcon);
1096 if (put_user(sco_pi(sk)->conn->mtu, (u32 __user *)optval))
1260 static void sco_conn_ready(struct sco_conn *conn)
1263 struct sock *sk = conn->sk;
1265 BT_DBG("conn %p", conn);
1274 sco_conn_lock(conn);
1276 if (!conn->hcon) {
1277 sco_conn_unlock(conn);
1281 parent = sco_get_sock_listen(&conn->hcon->src);
1283 sco_conn_unlock(conn);
1293 sco_conn_unlock(conn);
1299 bacpy(&sco_pi(sk)->src, &conn->hcon->src);
1300 bacpy(&sco_pi(sk)->dst, &conn->hcon->dst);
1302 hci_conn_hold(conn->hcon);
1303 __sco_chan_add(conn, sk, parent);
1315 sco_conn_unlock(conn);
1355 struct sco_conn *conn;
1357 conn = sco_conn_add(hcon);
1358 if (conn)
1359 sco_conn_ready(conn);
1376 struct sco_conn *conn = hcon->sco_data;
1378 if (!conn)
1381 BT_DBG("conn %p len %u", conn, skb->len);
1384 sco_recv_frame(conn, skb);