Lines Matching refs:conn
1622 struct hci_conn *conn; in clean_up_hci_state() local
1641 list_for_each_entry(conn, &hdev->conn_hash.list, list) { in clean_up_hci_state()
1643 __hci_abort_conn(&req, conn, 0x15); in clean_up_hci_state()
3030 struct hci_conn *conn; in unpair_device() local
3066 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, in unpair_device()
3069 conn = NULL; in unpair_device()
3096 conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr, addr_type); in unpair_device()
3097 if (!conn) { in unpair_device()
3103 smp_cancel_pairing(conn); in unpair_device()
3108 set_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags); in unpair_device()
3123 conn = NULL; in unpair_device()
3129 if (!conn) { in unpair_device()
3145 err = hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM); in unpair_device()
3160 struct hci_conn *conn; in disconnect() local
3190 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, in disconnect()
3193 conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr, in disconnect()
3196 if (!conn || conn->state == BT_OPEN || conn->state == BT_CLOSED) { in disconnect()
3211 err = hci_disconnect(conn, HCI_ERROR_REMOTE_USER_TERM); in disconnect()
3319 struct hci_conn *conn; in pin_code_reply() local
3335 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr); in pin_code_reply()
3336 if (!conn) { in pin_code_reply()
3342 if (conn->pending_sec_level == BT_SECURITY_HIGH && cp->pin_len != 16) { in pin_code_reply()
3402 static struct mgmt_pending_cmd *find_pairing(struct hci_conn *conn) in find_pairing() argument
3404 struct hci_dev *hdev = conn->hdev; in find_pairing()
3411 if (cmd->user_data != conn) in find_pairing()
3423 struct hci_conn *conn = cmd->user_data; in pairing_complete() local
3426 bacpy(&rp.addr.bdaddr, &conn->dst); in pairing_complete()
3427 rp.addr.type = link_to_bdaddr(conn->type, conn->dst_type); in pairing_complete()
3433 conn->connect_cfm_cb = NULL; in pairing_complete()
3434 conn->security_cfm_cb = NULL; in pairing_complete()
3435 conn->disconn_cfm_cb = NULL; in pairing_complete()
3437 hci_conn_drop(conn); in pairing_complete()
3442 clear_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags); in pairing_complete()
3444 hci_conn_put(conn); in pairing_complete()
3449 void mgmt_smp_complete(struct hci_conn *conn, bool complete) in mgmt_smp_complete() argument
3454 cmd = find_pairing(conn); in mgmt_smp_complete()
3461 static void pairing_complete_cb(struct hci_conn *conn, u8 status) in pairing_complete_cb() argument
3467 cmd = find_pairing(conn); in pairing_complete_cb()
3477 static void le_pairing_complete_cb(struct hci_conn *conn, u8 status) in le_pairing_complete_cb() argument
3486 cmd = find_pairing(conn); in le_pairing_complete_cb()
3503 struct hci_conn *conn; in pair_device() local
3542 conn = hci_connect_acl(hdev, &cp->addr.bdaddr, sec_level, in pair_device()
3562 conn = hci_connect_le_scan(hdev, &cp->addr.bdaddr, in pair_device()
3568 if (IS_ERR(conn)) { in pair_device()
3571 if (PTR_ERR(conn) == -EBUSY) in pair_device()
3573 else if (PTR_ERR(conn) == -EOPNOTSUPP) in pair_device()
3575 else if (PTR_ERR(conn) == -ECONNREFUSED) in pair_device()
3585 if (conn->connect_cfm_cb) { in pair_device()
3586 hci_conn_drop(conn); in pair_device()
3595 hci_conn_drop(conn); in pair_device()
3603 conn->connect_cfm_cb = pairing_complete_cb; in pair_device()
3604 conn->security_cfm_cb = pairing_complete_cb; in pair_device()
3605 conn->disconn_cfm_cb = pairing_complete_cb; in pair_device()
3607 conn->connect_cfm_cb = le_pairing_complete_cb; in pair_device()
3608 conn->security_cfm_cb = le_pairing_complete_cb; in pair_device()
3609 conn->disconn_cfm_cb = le_pairing_complete_cb; in pair_device()
3612 conn->io_capability = cp->io_cap; in pair_device()
3613 cmd->user_data = hci_conn_get(conn); in pair_device()
3615 if ((conn->state == BT_CONNECTED || conn->state == BT_CONFIG) && in pair_device()
3616 hci_conn_security(conn, sec_level, auth_type, true)) { in pair_device()
3633 struct hci_conn *conn; in cancel_pair_device() local
3653 conn = cmd->user_data; in cancel_pair_device()
3655 if (bacmp(&addr->bdaddr, &conn->dst) != 0) { in cancel_pair_device()
3676 struct hci_conn *conn; in user_pairing_resp() local
3689 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &addr->bdaddr); in user_pairing_resp()
3691 conn = hci_conn_hash_lookup_le(hdev, &addr->bdaddr, in user_pairing_resp()
3694 if (!conn) { in user_pairing_resp()
3702 err = smp_user_confirm_reply(conn, mgmt_op, passkey); in user_pairing_resp()
5718 struct hci_conn *conn = cmd->user_data; in conn_info_cmd_complete() local
5725 rp.rssi = conn->rssi; in conn_info_cmd_complete()
5726 rp.tx_power = conn->tx_power; in conn_info_cmd_complete()
5727 rp.max_tx_power = conn->max_tx_power; in conn_info_cmd_complete()
5737 hci_conn_drop(conn); in conn_info_cmd_complete()
5738 hci_conn_put(conn); in conn_info_cmd_complete()
5748 struct hci_conn *conn; in conn_info_refresh_complete() local
5779 conn = hci_conn_hash_lookup_handle(hdev, handle); in conn_info_refresh_complete()
5780 if (!conn) { in conn_info_refresh_complete()
5785 cmd = pending_find_data(MGMT_OP_GET_CONN_INFO, hdev, conn); in conn_info_refresh_complete()
5801 struct hci_conn *conn; in get_conn_info() local
5826 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, in get_conn_info()
5829 conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr); in get_conn_info()
5831 if (!conn || conn->state != BT_CONNECTED) { in get_conn_info()
5838 if (pending_find_data(MGMT_OP_GET_CONN_INFO, hdev, conn)) { in get_conn_info()
5854 if (time_after(jiffies, conn->conn_info_timestamp + in get_conn_info()
5856 !conn->conn_info_timestamp) { in get_conn_info()
5863 req_rssi_cp.handle = cpu_to_le16(conn->handle); in get_conn_info()
5871 conn->tx_power == HCI_TX_POWER_INVALID) { in get_conn_info()
5872 req_txp_cp.handle = cpu_to_le16(conn->handle); in get_conn_info()
5879 if (conn->max_tx_power == HCI_TX_POWER_INVALID) { in get_conn_info()
5880 req_txp_cp.handle = cpu_to_le16(conn->handle); in get_conn_info()
5897 hci_conn_hold(conn); in get_conn_info()
5898 cmd->user_data = hci_conn_get(conn); in get_conn_info()
5901 conn->conn_info_timestamp = jiffies; in get_conn_info()
5904 rp.rssi = conn->rssi; in get_conn_info()
5905 rp.tx_power = conn->tx_power; in get_conn_info()
5906 rp.max_tx_power = conn->max_tx_power; in get_conn_info()
5919 struct hci_conn *conn = cmd->user_data; in clock_info_cmd_complete() local
5936 if (conn) { in clock_info_cmd_complete()
5937 rp.piconet_clock = cpu_to_le32(conn->clock); in clock_info_cmd_complete()
5938 rp.accuracy = cpu_to_le16(conn->clock_accuracy); in clock_info_cmd_complete()
5945 if (conn) { in clock_info_cmd_complete()
5946 hci_conn_drop(conn); in clock_info_cmd_complete()
5947 hci_conn_put(conn); in clock_info_cmd_complete()
5957 struct hci_conn *conn; in get_clock_info_complete() local
5969 conn = hci_conn_hash_lookup_handle(hdev, handle); in get_clock_info_complete()
5971 conn = NULL; in get_clock_info_complete()
5974 cmd = pending_find_data(MGMT_OP_GET_CLOCK_INFO, hdev, conn); in get_clock_info_complete()
5993 struct hci_conn *conn; in get_clock_info() local
6017 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, in get_clock_info()
6019 if (!conn || conn->state != BT_CONNECTED) { in get_clock_info()
6027 conn = NULL; in get_clock_info()
6043 if (conn) { in get_clock_info()
6044 hci_conn_hold(conn); in get_clock_info()
6045 cmd->user_data = hci_conn_get(conn); in get_clock_info()
6047 hci_cp.handle = cpu_to_le16(conn->handle); in get_clock_info()
6063 struct hci_conn *conn; in is_connected() local
6065 conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, addr); in is_connected()
6066 if (!conn) in is_connected()
6069 if (conn->dst_type != type) in is_connected()
6072 if (conn->state != BT_CONNECTED) in is_connected()
7923 void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn, in mgmt_device_connected() argument
7930 bacpy(&ev->addr.bdaddr, &conn->dst); in mgmt_device_connected()
7931 ev->addr.type = link_to_bdaddr(conn->type, conn->dst_type); in mgmt_device_connected()
7939 if (conn->le_adv_data_len > 0) { in mgmt_device_connected()
7941 conn->le_adv_data, conn->le_adv_data_len); in mgmt_device_connected()
7942 eir_len = conn->le_adv_data_len; in mgmt_device_connected()
7948 if (memcmp(conn->dev_class, "\0\0\0", 3) != 0) in mgmt_device_connected()
7951 conn->dev_class, 3); in mgmt_device_connected()
8211 void mgmt_auth_failed(struct hci_conn *conn, u8 hci_status) in mgmt_auth_failed() argument
8217 bacpy(&ev.addr.bdaddr, &conn->dst); in mgmt_auth_failed()
8218 ev.addr.type = link_to_bdaddr(conn->type, conn->dst_type); in mgmt_auth_failed()
8221 cmd = find_pairing(conn); in mgmt_auth_failed()
8223 mgmt_event(MGMT_EV_AUTH_FAILED, conn->hdev, &ev, sizeof(ev), in mgmt_auth_failed()