Lines Matching refs:chan
493 struct l2cap_chan *chan = hdev->smp_data; in smp_irk_matches() local
498 if (!chan || !chan->data) in smp_irk_matches()
501 smp = chan->data; in smp_irk_matches()
514 struct l2cap_chan *chan = hdev->smp_data; in smp_generate_rpa() local
518 if (!chan || !chan->data) in smp_generate_rpa()
521 smp = chan->data; in smp_generate_rpa()
539 struct l2cap_chan *chan = hdev->smp_data; in smp_generate_oob() local
543 if (!chan || !chan->data) in smp_generate_oob()
546 smp = chan->data; in smp_generate_oob()
586 struct l2cap_chan *chan = conn->smp; in smp_send_cmd() local
591 if (!chan) in smp_send_cmd()
606 l2cap_chan_send(chan, &msg, 1 + len); in smp_send_cmd()
608 if (!chan->data) in smp_send_cmd()
611 smp = chan->data; in smp_send_cmd()
646 struct l2cap_chan *chan = conn->smp; in build_pairing_cmd() local
647 struct smp_chan *smp = chan->data; in build_pairing_cmd()
720 struct l2cap_chan *chan = conn->smp; in check_enc_key_size() local
721 struct smp_chan *smp = chan->data; in check_enc_key_size()
734 struct l2cap_chan *chan = conn->smp; in smp_chan_destroy() local
735 struct smp_chan *smp = chan->data; in smp_chan_destroy()
781 chan->data = NULL; in smp_chan_destroy()
789 struct l2cap_chan *chan = conn->smp; in smp_failure() local
798 if (chan->data) in smp_failure()
845 struct l2cap_chan *chan = conn->smp; in tk_request() local
846 struct smp_chan *smp = chan->data; in tk_request()
1028 struct l2cap_chan *chan = conn->smp; in smp_notify_keys() local
1029 struct smp_chan *smp = chan->data; in smp_notify_keys()
1361 struct l2cap_chan *chan = conn->smp; in smp_chan_create() local
1384 chan->data = smp; in smp_chan_create()
1605 struct l2cap_chan *chan; in smp_user_confirm_reply() local
1615 chan = conn->smp; in smp_user_confirm_reply()
1616 if (!chan) in smp_user_confirm_reply()
1619 l2cap_chan_lock(chan); in smp_user_confirm_reply()
1620 if (!chan->data) { in smp_user_confirm_reply()
1625 smp = chan->data; in smp_user_confirm_reply()
1663 l2cap_chan_unlock(chan); in smp_user_confirm_reply()
1710 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_req() local
1724 if (!chan->data) in smp_cmd_pairing_req()
1727 smp = chan->data; in smp_cmd_pairing_req()
1845 struct l2cap_chan *chan = hdev->smp_data; in sc_send_public_key() local
1848 if (!chan || !chan->data) in sc_send_public_key()
1851 smp_dev = chan->data; in sc_send_public_key()
1895 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_rsp() local
1896 struct smp_chan *smp = chan->data; in smp_cmd_pairing_rsp()
2050 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_confirm() local
2051 struct smp_chan *smp = chan->data; in smp_cmd_pairing_confirm()
2092 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_random() local
2093 struct smp_chan *smp = chan->data; in smp_cmd_pairing_random()
2286 struct l2cap_chan *chan; in smp_conn_security() local
2310 chan = conn->smp; in smp_conn_security()
2311 if (!chan) { in smp_conn_security()
2316 l2cap_chan_lock(chan); in smp_conn_security()
2319 if (chan->data) { in smp_conn_security()
2362 l2cap_chan_unlock(chan); in smp_conn_security()
2369 struct l2cap_chan *chan = conn->smp; in smp_cmd_encrypt_info() local
2370 struct smp_chan *smp = chan->data; in smp_cmd_encrypt_info()
2389 struct l2cap_chan *chan = conn->smp; in smp_cmd_master_ident() local
2390 struct smp_chan *smp = chan->data; in smp_cmd_master_ident()
2425 struct l2cap_chan *chan = conn->smp; in smp_cmd_ident_info() local
2426 struct smp_chan *smp = chan->data; in smp_cmd_ident_info()
2446 struct l2cap_chan *chan = conn->smp; in smp_cmd_ident_addr_info() local
2447 struct smp_chan *smp = chan->data; in smp_cmd_ident_addr_info()
2501 struct l2cap_chan *chan = conn->smp; in smp_cmd_sign_info() local
2502 struct smp_chan *smp = chan->data; in smp_cmd_sign_info()
2578 struct l2cap_chan *chan = conn->smp; in smp_cmd_public_key() local
2579 struct smp_chan *smp = chan->data; in smp_cmd_public_key()
2690 struct l2cap_chan *chan = conn->smp; in smp_cmd_dhkey_check() local
2692 struct smp_chan *smp = chan->data; in smp_cmd_dhkey_check()
2762 static int smp_sig_channel(struct l2cap_chan *chan, struct sk_buff *skb) in smp_sig_channel() argument
2764 struct l2cap_conn *conn = chan->conn; in smp_sig_channel()
2781 smp = chan->data; in smp_sig_channel()
2875 static void smp_teardown_cb(struct l2cap_chan *chan, int err) in smp_teardown_cb() argument
2877 struct l2cap_conn *conn = chan->conn; in smp_teardown_cb()
2879 BT_DBG("chan %p", chan); in smp_teardown_cb()
2881 if (chan->data) in smp_teardown_cb()
2885 l2cap_chan_put(chan); in smp_teardown_cb()
2888 static void bredr_pairing(struct l2cap_chan *chan) in bredr_pairing() argument
2890 struct l2cap_conn *conn = chan->conn; in bredr_pairing()
2896 BT_DBG("chan %p", chan); in bredr_pairing()
2932 if (chan->data) in bredr_pairing()
2956 static void smp_resume_cb(struct l2cap_chan *chan) in smp_resume_cb() argument
2958 struct smp_chan *smp = chan->data; in smp_resume_cb()
2959 struct l2cap_conn *conn = chan->conn; in smp_resume_cb()
2962 BT_DBG("chan %p", chan); in smp_resume_cb()
2965 bredr_pairing(chan); in smp_resume_cb()
2980 static void smp_ready_cb(struct l2cap_chan *chan) in smp_ready_cb() argument
2982 struct l2cap_conn *conn = chan->conn; in smp_ready_cb()
2985 BT_DBG("chan %p", chan); in smp_ready_cb()
2987 conn->smp = chan; in smp_ready_cb()
2988 l2cap_chan_hold(chan); in smp_ready_cb()
2991 bredr_pairing(chan); in smp_ready_cb()
2994 static int smp_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) in smp_recv_cb() argument
2998 BT_DBG("chan %p", chan); in smp_recv_cb()
3000 err = smp_sig_channel(chan, skb); in smp_recv_cb()
3002 struct smp_chan *smp = chan->data; in smp_recv_cb()
3007 hci_disconnect(chan->conn->hcon, HCI_ERROR_AUTH_FAILURE); in smp_recv_cb()
3013 static struct sk_buff *smp_alloc_skb_cb(struct l2cap_chan *chan, in smp_alloc_skb_cb() argument
3024 bt_cb(skb)->l2cap.chan = chan; in smp_alloc_skb_cb()
3048 struct l2cap_chan *chan; in smp_new_conn_cb() local
3052 chan = l2cap_chan_create(); in smp_new_conn_cb()
3053 if (!chan) in smp_new_conn_cb()
3056 chan->chan_type = pchan->chan_type; in smp_new_conn_cb()
3057 chan->ops = &smp_chan_ops; in smp_new_conn_cb()
3058 chan->scid = pchan->scid; in smp_new_conn_cb()
3059 chan->dcid = chan->scid; in smp_new_conn_cb()
3060 chan->imtu = pchan->imtu; in smp_new_conn_cb()
3061 chan->omtu = pchan->omtu; in smp_new_conn_cb()
3062 chan->mode = pchan->mode; in smp_new_conn_cb()
3069 atomic_set(&chan->nesting, L2CAP_NESTING_SMP); in smp_new_conn_cb()
3071 BT_DBG("created chan %p", chan); in smp_new_conn_cb()
3073 return chan; in smp_new_conn_cb()
3096 struct l2cap_chan *chan; in smp_add_cid() local
3129 chan = l2cap_chan_create(); in smp_add_cid()
3130 if (!chan) { in smp_add_cid()
3139 chan->data = smp; in smp_add_cid()
3141 l2cap_add_scid(chan, cid); in smp_add_cid()
3143 l2cap_chan_set_defaults(chan); in smp_add_cid()
3148 hci_copy_identity_address(hdev, &chan->src, &bdaddr_type); in smp_add_cid()
3151 chan->src_type = BDADDR_LE_PUBLIC; in smp_add_cid()
3153 chan->src_type = BDADDR_LE_RANDOM; in smp_add_cid()
3155 bacpy(&chan->src, &hdev->bdaddr); in smp_add_cid()
3156 chan->src_type = BDADDR_BREDR; in smp_add_cid()
3159 chan->state = BT_LISTEN; in smp_add_cid()
3160 chan->mode = L2CAP_MODE_BASIC; in smp_add_cid()
3161 chan->imtu = L2CAP_DEFAULT_MTU; in smp_add_cid()
3162 chan->ops = &smp_root_chan_ops; in smp_add_cid()
3165 atomic_set(&chan->nesting, L2CAP_NESTING_PARENT); in smp_add_cid()
3167 return chan; in smp_add_cid()
3170 static void smp_del_chan(struct l2cap_chan *chan) in smp_del_chan() argument
3174 BT_DBG("chan %p", chan); in smp_del_chan()
3176 smp = chan->data; in smp_del_chan()
3178 chan->data = NULL; in smp_del_chan()
3186 l2cap_chan_put(chan); in smp_del_chan()
3222 struct l2cap_chan *chan; in force_bredr_smp_write() local
3224 chan = smp_add_cid(hdev, L2CAP_CID_SMP_BREDR); in force_bredr_smp_write()
3225 if (IS_ERR(chan)) in force_bredr_smp_write()
3226 return PTR_ERR(chan); in force_bredr_smp_write()
3228 hdev->smp_bredr_data = chan; in force_bredr_smp_write()
3230 struct l2cap_chan *chan; in force_bredr_smp_write() local
3232 chan = hdev->smp_bredr_data; in force_bredr_smp_write()
3234 smp_del_chan(chan); in force_bredr_smp_write()
3251 struct l2cap_chan *chan; in smp_register() local
3262 chan = hdev->smp_data; in smp_register()
3264 smp_del_chan(chan); in smp_register()
3267 chan = smp_add_cid(hdev, L2CAP_CID_SMP); in smp_register()
3268 if (IS_ERR(chan)) in smp_register()
3269 return PTR_ERR(chan); in smp_register()
3271 hdev->smp_data = chan; in smp_register()
3287 chan = hdev->smp_bredr_data; in smp_register()
3289 smp_del_chan(chan); in smp_register()
3292 chan = smp_add_cid(hdev, L2CAP_CID_SMP_BREDR); in smp_register()
3293 if (IS_ERR(chan)) { in smp_register()
3294 int err = PTR_ERR(chan); in smp_register()
3295 chan = hdev->smp_data; in smp_register()
3297 smp_del_chan(chan); in smp_register()
3301 hdev->smp_bredr_data = chan; in smp_register()
3308 struct l2cap_chan *chan; in smp_unregister() local
3311 chan = hdev->smp_bredr_data; in smp_unregister()
3313 smp_del_chan(chan); in smp_unregister()
3317 chan = hdev->smp_data; in smp_unregister()
3319 smp_del_chan(chan); in smp_unregister()