Lines Matching refs:conn

2913 	struct hci_conn *conn;
2916 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
2919 conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr,
2922 if (!conn)
2925 return hci_abort_conn_sync(hdev, conn, HCI_ERROR_REMOTE_USER_TERM);
2935 struct hci_conn *conn;
2971 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
2974 conn = NULL;
3000 conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr, addr_type);
3001 if (!conn) {
3010 set_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags);
3025 conn = NULL;
3031 if (!conn) {
3063 struct hci_conn *conn;
3093 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
3096 conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr,
3099 if (!conn || conn->state == BT_OPEN || conn->state == BT_CLOSED) {
3114 err = hci_disconnect(conn, HCI_ERROR_REMOTE_USER_TERM);
3221 struct hci_conn *conn;
3237 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr);
3238 if (!conn) {
3244 if (conn->pending_sec_level == BT_SECURITY_HIGH && cp->pin_len != 16) {
3303 static struct mgmt_pending_cmd *find_pairing(struct hci_conn *conn)
3305 struct hci_dev *hdev = conn->hdev;
3312 if (cmd->user_data != conn)
3324 struct hci_conn *conn = cmd->user_data;
3327 bacpy(&rp.addr.bdaddr, &conn->dst);
3328 rp.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
3334 conn->connect_cfm_cb = NULL;
3335 conn->security_cfm_cb = NULL;
3336 conn->disconn_cfm_cb = NULL;
3338 hci_conn_drop(conn);
3343 clear_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags);
3345 hci_conn_put(conn);
3350 void mgmt_smp_complete(struct hci_conn *conn, bool complete)
3355 cmd = find_pairing(conn);
3362 static void pairing_complete_cb(struct hci_conn *conn, u8 status)
3368 cmd = find_pairing(conn);
3378 static void le_pairing_complete_cb(struct hci_conn *conn, u8 status)
3387 cmd = find_pairing(conn);
3404 struct hci_conn *conn;
3443 conn = hci_connect_acl(hdev, &cp->addr.bdaddr, sec_level,
3464 conn = hci_connect_le_scan(hdev, &cp->addr.bdaddr, addr_type,
3469 if (IS_ERR(conn)) {
3472 if (PTR_ERR(conn) == -EBUSY)
3474 else if (PTR_ERR(conn) == -EOPNOTSUPP)
3476 else if (PTR_ERR(conn) == -ECONNREFUSED)
3486 if (conn->connect_cfm_cb) {
3487 hci_conn_drop(conn);
3496 hci_conn_drop(conn);
3504 conn->connect_cfm_cb = pairing_complete_cb;
3505 conn->security_cfm_cb = pairing_complete_cb;
3506 conn->disconn_cfm_cb = pairing_complete_cb;
3508 conn->connect_cfm_cb = le_pairing_complete_cb;
3509 conn->security_cfm_cb = le_pairing_complete_cb;
3510 conn->disconn_cfm_cb = le_pairing_complete_cb;
3513 conn->io_capability = cp->io_cap;
3514 cmd->user_data = hci_conn_get(conn);
3516 if ((conn->state == BT_CONNECTED || conn->state == BT_CONFIG) &&
3517 hci_conn_security(conn, sec_level, auth_type, true)) {
3534 struct hci_conn *conn;
3554 conn = cmd->user_data;
3556 if (bacmp(&addr->bdaddr, &conn->dst) != 0) {
3578 if (conn->conn_reason == CONN_REASON_PAIR_DEVICE)
3579 hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
3591 struct hci_conn *conn;
3604 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &addr->bdaddr);
3606 conn = hci_conn_hash_lookup_le(hdev, &addr->bdaddr,
3609 if (!conn) {
3617 err = smp_user_confirm_reply(conn, mgmt_op, passkey);
7223 struct hci_conn *conn = cmd->user_data;
7234 rp.rssi = conn->rssi;
7235 rp.tx_power = conn->tx_power;
7236 rp.max_tx_power = conn->max_tx_power;
7253 struct hci_conn *conn;
7259 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
7262 conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr);
7264 if (!conn || conn->state != BT_CONNECTED)
7267 cmd->user_data = conn;
7268 handle = cpu_to_le16(conn->handle);
7277 conn->tx_power == HCI_TX_POWER_INVALID))
7281 if (!err && conn->max_tx_power == HCI_TX_POWER_INVALID)
7292 struct hci_conn *conn;
7317 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
7320 conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr);
7322 if (!conn || conn->state != BT_CONNECTED) {
7330 * calculate conn info age as random value between min/max set in hdev.
7338 if (time_after(jiffies, conn->conn_info_timestamp +
7340 !conn->conn_info_timestamp) {
7362 conn->conn_info_timestamp = jiffies;
7365 rp.rssi = conn->rssi;
7366 rp.tx_power = conn->tx_power;
7367 rp.max_tx_power = conn->max_tx_power;
7383 struct hci_conn *conn = cmd->user_data;
7397 if (conn) {
7398 rp.piconet_clock = cpu_to_le32(conn->clock);
7399 rp.accuracy = cpu_to_le16(conn->clock_accuracy);
7414 struct hci_conn *conn;
7420 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr);
7421 if (!conn || conn->state != BT_CONNECTED)
7424 cmd->user_data = conn;
7425 hci_cp.handle = cpu_to_le16(conn->handle);
7437 struct hci_conn *conn;
7461 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
7463 if (!conn || conn->state != BT_CONNECTED) {
7471 conn = NULL;
7497 struct hci_conn *conn;
7499 conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, addr);
7500 if (!conn)
7503 if (conn->dst_type != type)
7506 if (conn->state != BT_CONNECTED)
9593 void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
9601 if (test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags))
9605 if (conn->le_adv_data_len > 0)
9607 sizeof(*ev) + conn->le_adv_data_len);
9611 eir_precalc_len(sizeof(conn->dev_class)));
9614 bacpy(&ev->addr.bdaddr, &conn->dst);
9615 ev->addr.type = link_to_bdaddr(conn->type, conn->dst_type);
9617 if (conn->out)
9626 if (conn->le_adv_data_len > 0) {
9627 skb_put_data(skb, conn->le_adv_data, conn->le_adv_data_len);
9628 eir_len = conn->le_adv_data_len;
9633 if (memcmp(conn->dev_class, "\0\0\0", sizeof(conn->dev_class)))
9635 conn->dev_class, sizeof(conn->dev_class));
9885 void mgmt_auth_failed(struct hci_conn *conn, u8 hci_status)
9891 bacpy(&ev.addr.bdaddr, &conn->dst);
9892 ev.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
9895 cmd = find_pairing(conn);
9897 mgmt_event(MGMT_EV_AUTH_FAILED, conn->hdev, &ev, sizeof(ev),