Lines Matching refs:conn

68 	struct sco_conn	*conn;  member
106 struct sco_conn *conn = hcon->sco_data; in sco_conn_add() local
108 if (conn) in sco_conn_add()
109 return conn; in sco_conn_add()
111 conn = kzalloc(sizeof(struct sco_conn), GFP_KERNEL); in sco_conn_add()
112 if (!conn) in sco_conn_add()
115 spin_lock_init(&conn->lock); in sco_conn_add()
117 hcon->sco_data = conn; in sco_conn_add()
118 conn->hcon = hcon; in sco_conn_add()
121 conn->mtu = hdev->sco_mtu; in sco_conn_add()
123 conn->mtu = 60; in sco_conn_add()
125 BT_DBG("hcon %p conn %p", hcon, conn); in sco_conn_add()
127 return conn; in sco_conn_add()
134 struct sco_conn *conn; in sco_chan_del() local
136 conn = sco_pi(sk)->conn; in sco_chan_del()
138 BT_DBG("sk %p, conn %p, err %d", sk, conn, err); in sco_chan_del()
140 if (conn) { in sco_chan_del()
141 sco_conn_lock(conn); in sco_chan_del()
142 conn->sk = NULL; in sco_chan_del()
143 sco_pi(sk)->conn = NULL; in sco_chan_del()
144 sco_conn_unlock(conn); in sco_chan_del()
146 if (conn->hcon) in sco_chan_del()
147 hci_conn_drop(conn->hcon); in sco_chan_del()
159 struct sco_conn *conn = hcon->sco_data; in sco_conn_del() local
162 if (!conn) in sco_conn_del()
165 BT_DBG("hcon %p conn %p, err %d", hcon, conn, err); in sco_conn_del()
168 sco_conn_lock(conn); in sco_conn_del()
169 sk = conn->sk; in sco_conn_del()
170 sco_conn_unlock(conn); in sco_conn_del()
181 kfree(conn); in sco_conn_del()
185 static void __sco_chan_add(struct sco_conn *conn, struct sock *sk, struct sock *parent) in __sco_chan_add() argument
187 BT_DBG("conn %p", conn); in __sco_chan_add()
189 sco_pi(sk)->conn = conn; in __sco_chan_add()
190 conn->sk = sk; in __sco_chan_add()
196 static int sco_chan_add(struct sco_conn *conn, struct sock *sk, in sco_chan_add() argument
201 sco_conn_lock(conn); in sco_chan_add()
202 if (conn->sk) in sco_chan_add()
205 __sco_chan_add(conn, sk, parent); in sco_chan_add()
207 sco_conn_unlock(conn); in sco_chan_add()
213 struct sco_conn *conn; in sco_connect() local
244 conn = sco_conn_add(hcon); in sco_connect()
245 if (!conn) { in sco_connect()
254 err = sco_chan_add(conn, sk, NULL); in sco_connect()
274 struct sco_conn *conn = sco_pi(sk)->conn; in sco_send_frame() local
279 if (len > conn->mtu) in sco_send_frame()
293 hci_send_sco(conn->hcon, skb); in sco_send_frame()
298 static void sco_recv_frame(struct sco_conn *conn, struct sk_buff *skb) in sco_recv_frame() argument
302 sco_conn_lock(conn); in sco_recv_frame()
303 sk = conn->sk; in sco_recv_frame()
304 sco_conn_unlock(conn); in sco_recv_frame()
415 if (sco_pi(sk)->conn->hcon) { in __sco_sock_close()
418 hci_conn_drop(sco_pi(sk)->conn->hcon); in __sco_sock_close()
419 sco_pi(sk)->conn->hcon = NULL; in __sco_sock_close()
720 static void sco_conn_defer_accept(struct hci_conn *conn, u16 setting) in sco_conn_defer_accept() argument
722 struct hci_dev *hdev = conn->hdev; in sco_conn_defer_accept()
724 BT_DBG("conn %p", conn); in sco_conn_defer_accept()
726 conn->state = BT_CONFIG; in sco_conn_defer_accept()
731 bacpy(&cp.bdaddr, &conn->dst); in sco_conn_defer_accept()
738 bacpy(&cp.bdaddr, &conn->dst); in sco_conn_defer_accept()
739 cp.pkt_type = cpu_to_le16(conn->pkt_type); in sco_conn_defer_accept()
747 if (conn->pkt_type & ESCO_2EV3) in sco_conn_defer_accept()
774 sco_conn_defer_accept(pi->conn->hcon, pi->setting); in sco_sock_recvmsg()
873 opts.mtu = sco_pi(sk)->conn->mtu; in sco_sock_getsockopt_old()
892 cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle; in sco_sock_getsockopt_old()
893 memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3); in sco_sock_getsockopt_old()
1007 static void sco_conn_ready(struct sco_conn *conn) in sco_conn_ready() argument
1010 struct sock *sk = conn->sk; in sco_conn_ready()
1012 BT_DBG("conn %p", conn); in sco_conn_ready()
1021 sco_conn_lock(conn); in sco_conn_ready()
1023 parent = sco_get_sock_listen(&conn->hcon->src); in sco_conn_ready()
1025 sco_conn_unlock(conn); in sco_conn_ready()
1035 sco_conn_unlock(conn); in sco_conn_ready()
1041 bacpy(&sco_pi(sk)->src, &conn->hcon->src); in sco_conn_ready()
1042 bacpy(&sco_pi(sk)->dst, &conn->hcon->dst); in sco_conn_ready()
1044 hci_conn_hold(conn->hcon); in sco_conn_ready()
1045 __sco_chan_add(conn, sk, parent); in sco_conn_ready()
1057 sco_conn_unlock(conn); in sco_conn_ready()
1097 struct sco_conn *conn; in sco_connect_cfm() local
1099 conn = sco_conn_add(hcon); in sco_connect_cfm()
1100 if (conn) in sco_connect_cfm()
1101 sco_conn_ready(conn); in sco_connect_cfm()
1118 struct sco_conn *conn = hcon->sco_data; in sco_recv_scodata() local
1120 if (!conn) in sco_recv_scodata()
1123 BT_DBG("conn %p len %d", conn, skb->len); in sco_recv_scodata()
1126 sco_recv_frame(conn, skb); in sco_recv_scodata()