Lines Matching refs:chan

500 	struct l2cap_chan *chan = hdev->smp_data;  in smp_irk_matches()  local
504 if (!chan || !chan->data) in smp_irk_matches()
518 struct l2cap_chan *chan = hdev->smp_data; in smp_generate_rpa() local
521 if (!chan || !chan->data) in smp_generate_rpa()
540 struct l2cap_chan *chan = hdev->smp_data; in smp_generate_oob() local
544 if (!chan || !chan->data) in smp_generate_oob()
547 smp = chan->data; in smp_generate_oob()
591 struct l2cap_chan *chan = conn->smp; in smp_send_cmd() local
596 if (!chan) in smp_send_cmd()
611 l2cap_chan_send(chan, &msg, 1 + len, NULL); in smp_send_cmd()
613 if (!chan->data) in smp_send_cmd()
616 smp = chan->data; in smp_send_cmd()
651 struct l2cap_chan *chan = conn->smp; in build_pairing_cmd() local
652 struct smp_chan *smp = chan->data; in build_pairing_cmd()
725 struct l2cap_chan *chan = conn->smp; in check_enc_key_size() local
727 struct smp_chan *smp = chan->data; in check_enc_key_size()
744 struct l2cap_chan *chan = conn->smp; in smp_chan_destroy() local
745 struct smp_chan *smp = chan->data; in smp_chan_destroy()
791 chan->data = NULL; in smp_chan_destroy()
799 struct l2cap_chan *chan = conn->smp; in smp_failure() local
807 if (chan->data) in smp_failure()
854 struct l2cap_chan *chan = conn->smp; in tk_request() local
855 struct smp_chan *smp = chan->data; in tk_request()
1039 struct l2cap_chan *chan = conn->smp; in smp_notify_keys() local
1040 struct smp_chan *smp = chan->data; in smp_notify_keys()
1388 struct l2cap_chan *chan = conn->smp; in smp_chan_create() local
1408 chan->data = smp; in smp_chan_create()
1635 struct l2cap_chan *chan; in smp_user_confirm_reply() local
1645 chan = conn->smp; in smp_user_confirm_reply()
1646 if (!chan) in smp_user_confirm_reply()
1649 l2cap_chan_lock(chan); in smp_user_confirm_reply()
1650 if (!chan->data) { in smp_user_confirm_reply()
1655 smp = chan->data; in smp_user_confirm_reply()
1693 l2cap_chan_unlock(chan); in smp_user_confirm_reply()
1742 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_req() local
1744 struct smp_chan *smp = chan->data; in smp_cmd_pairing_req()
1882 struct l2cap_chan *chan = hdev->smp_data; in sc_send_public_key() local
1885 if (!chan || !chan->data) in sc_send_public_key()
1888 smp_dev = chan->data; in sc_send_public_key()
1931 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_rsp() local
1932 struct smp_chan *smp = chan->data; in smp_cmd_pairing_rsp()
2089 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_confirm() local
2090 struct smp_chan *smp = chan->data; in smp_cmd_pairing_confirm()
2135 struct l2cap_chan *chan = conn->smp; in smp_cmd_pairing_random() local
2136 struct smp_chan *smp = chan->data; in smp_cmd_pairing_random()
2380 struct l2cap_chan *chan; in smp_conn_security() local
2405 chan = conn->smp; in smp_conn_security()
2406 if (!chan) { in smp_conn_security()
2411 l2cap_chan_lock(chan); in smp_conn_security()
2414 if (chan->data) { in smp_conn_security()
2453 l2cap_chan_unlock(chan); in smp_conn_security()
2462 struct l2cap_chan *chan; in smp_cancel_and_remove_pairing() local
2477 chan = conn->smp; in smp_cancel_and_remove_pairing()
2478 if (!chan) in smp_cancel_and_remove_pairing()
2481 l2cap_chan_lock(chan); in smp_cancel_and_remove_pairing()
2483 smp = chan->data; in smp_cancel_and_remove_pairing()
2498 l2cap_chan_unlock(chan); in smp_cancel_and_remove_pairing()
2507 struct l2cap_chan *chan = conn->smp; in smp_cmd_encrypt_info() local
2508 struct smp_chan *smp = chan->data; in smp_cmd_encrypt_info()
2536 struct l2cap_chan *chan = conn->smp; in smp_cmd_initiator_ident() local
2537 struct smp_chan *smp = chan->data; in smp_cmd_initiator_ident()
2572 struct l2cap_chan *chan = conn->smp; in smp_cmd_ident_info() local
2573 struct smp_chan *smp = chan->data; in smp_cmd_ident_info()
2602 struct l2cap_chan *chan = conn->smp; in smp_cmd_ident_addr_info() local
2603 struct smp_chan *smp = chan->data; in smp_cmd_ident_addr_info()
2670 struct l2cap_chan *chan = conn->smp; in smp_cmd_sign_info() local
2671 struct smp_chan *smp = chan->data; in smp_cmd_sign_info()
2745 struct l2cap_chan *chan = conn->smp; in smp_cmd_public_key() local
2746 struct smp_chan *smp = chan->data; in smp_cmd_public_key()
2884 struct l2cap_chan *chan = conn->smp; in smp_cmd_dhkey_check() local
2886 struct smp_chan *smp = chan->data; in smp_cmd_dhkey_check()
2956 static int smp_sig_channel(struct l2cap_chan *chan, struct sk_buff *skb) in smp_sig_channel() argument
2958 struct l2cap_conn *conn = chan->conn; in smp_sig_channel()
2975 smp = chan->data; in smp_sig_channel()
3086 static void smp_teardown_cb(struct l2cap_chan *chan, int err) in smp_teardown_cb() argument
3088 struct l2cap_conn *conn = chan->conn; in smp_teardown_cb()
3090 bt_dev_dbg(conn->hcon->hdev, "chan %p", chan); in smp_teardown_cb()
3092 if (chan->data) in smp_teardown_cb()
3096 l2cap_chan_put(chan); in smp_teardown_cb()
3099 static void bredr_pairing(struct l2cap_chan *chan) in bredr_pairing() argument
3101 struct l2cap_conn *conn = chan->conn; in bredr_pairing()
3106 bt_dev_dbg(hdev, "chan %p", chan); in bredr_pairing()
3142 if (chan->data) in bredr_pairing()
3158 static void smp_resume_cb(struct l2cap_chan *chan) in smp_resume_cb() argument
3160 struct smp_chan *smp = chan->data; in smp_resume_cb()
3161 struct l2cap_conn *conn = chan->conn; in smp_resume_cb()
3164 bt_dev_dbg(hcon->hdev, "chan %p", chan); in smp_resume_cb()
3167 bredr_pairing(chan); in smp_resume_cb()
3182 static void smp_ready_cb(struct l2cap_chan *chan) in smp_ready_cb() argument
3184 struct l2cap_conn *conn = chan->conn; in smp_ready_cb()
3187 bt_dev_dbg(hcon->hdev, "chan %p", chan); in smp_ready_cb()
3195 conn->smp = chan; in smp_ready_cb()
3198 bredr_pairing(chan); in smp_ready_cb()
3201 static int smp_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) in smp_recv_cb() argument
3205 bt_dev_dbg(chan->conn->hcon->hdev, "chan %p", chan); in smp_recv_cb()
3207 err = smp_sig_channel(chan, skb); in smp_recv_cb()
3209 struct smp_chan *smp = chan->data; in smp_recv_cb()
3214 hci_disconnect(chan->conn->hcon, HCI_ERROR_AUTH_FAILURE); in smp_recv_cb()
3220 static struct sk_buff *smp_alloc_skb_cb(struct l2cap_chan *chan, in smp_alloc_skb_cb() argument
3231 bt_cb(skb)->l2cap.chan = chan; in smp_alloc_skb_cb()
3255 struct l2cap_chan *chan; in smp_new_conn_cb() local
3259 chan = l2cap_chan_create(); in smp_new_conn_cb()
3260 if (!chan) in smp_new_conn_cb()
3263 chan->chan_type = pchan->chan_type; in smp_new_conn_cb()
3264 chan->ops = &smp_chan_ops; in smp_new_conn_cb()
3265 chan->scid = pchan->scid; in smp_new_conn_cb()
3266 chan->dcid = chan->scid; in smp_new_conn_cb()
3267 chan->imtu = pchan->imtu; in smp_new_conn_cb()
3268 chan->omtu = pchan->omtu; in smp_new_conn_cb()
3269 chan->mode = pchan->mode; in smp_new_conn_cb()
3276 atomic_set(&chan->nesting, L2CAP_NESTING_SMP); in smp_new_conn_cb()
3278 BT_DBG("created chan %p", chan); in smp_new_conn_cb()
3280 return chan; in smp_new_conn_cb()
3303 struct l2cap_chan *chan; in smp_add_cid() local
3337 chan = l2cap_chan_create(); in smp_add_cid()
3338 if (!chan) { in smp_add_cid()
3347 chan->data = smp; in smp_add_cid()
3349 l2cap_add_scid(chan, cid); in smp_add_cid()
3351 l2cap_chan_set_defaults(chan); in smp_add_cid()
3356 hci_copy_identity_address(hdev, &chan->src, &bdaddr_type); in smp_add_cid()
3359 chan->src_type = BDADDR_LE_PUBLIC; in smp_add_cid()
3361 chan->src_type = BDADDR_LE_RANDOM; in smp_add_cid()
3363 bacpy(&chan->src, &hdev->bdaddr); in smp_add_cid()
3364 chan->src_type = BDADDR_BREDR; in smp_add_cid()
3367 chan->state = BT_LISTEN; in smp_add_cid()
3368 chan->mode = L2CAP_MODE_BASIC; in smp_add_cid()
3369 chan->imtu = L2CAP_DEFAULT_MTU; in smp_add_cid()
3370 chan->ops = &smp_root_chan_ops; in smp_add_cid()
3373 atomic_set(&chan->nesting, L2CAP_NESTING_PARENT); in smp_add_cid()
3375 return chan; in smp_add_cid()
3378 static void smp_del_chan(struct l2cap_chan *chan) in smp_del_chan() argument
3382 BT_DBG("chan %p", chan); in smp_del_chan()
3384 smp = chan->data; in smp_del_chan()
3386 chan->data = NULL; in smp_del_chan()
3392 l2cap_chan_put(chan); in smp_del_chan()
3401 struct l2cap_chan *chan; in smp_force_bredr() local
3403 chan = smp_add_cid(hdev, L2CAP_CID_SMP_BREDR); in smp_force_bredr()
3404 if (IS_ERR(chan)) in smp_force_bredr()
3405 return PTR_ERR(chan); in smp_force_bredr()
3407 hdev->smp_bredr_data = chan; in smp_force_bredr()
3409 struct l2cap_chan *chan; in smp_force_bredr() local
3411 chan = hdev->smp_bredr_data; in smp_force_bredr()
3413 smp_del_chan(chan); in smp_force_bredr()
3423 struct l2cap_chan *chan; in smp_register() local
3434 chan = hdev->smp_data; in smp_register()
3436 smp_del_chan(chan); in smp_register()
3439 chan = smp_add_cid(hdev, L2CAP_CID_SMP); in smp_register()
3440 if (IS_ERR(chan)) in smp_register()
3441 return PTR_ERR(chan); in smp_register()
3443 hdev->smp_data = chan; in smp_register()
3452 chan = hdev->smp_bredr_data; in smp_register()
3454 smp_del_chan(chan); in smp_register()
3457 chan = smp_add_cid(hdev, L2CAP_CID_SMP_BREDR); in smp_register()
3458 if (IS_ERR(chan)) { in smp_register()
3459 int err = PTR_ERR(chan); in smp_register()
3460 chan = hdev->smp_data; in smp_register()
3462 smp_del_chan(chan); in smp_register()
3466 hdev->smp_bredr_data = chan; in smp_register()
3473 struct l2cap_chan *chan; in smp_unregister() local
3476 chan = hdev->smp_bredr_data; in smp_unregister()
3478 smp_del_chan(chan); in smp_unregister()
3482 chan = hdev->smp_data; in smp_unregister()
3484 smp_del_chan(chan); in smp_unregister()