Lines Matching refs:cmd
922 struct mgmt_pending_cmd *cmd; in get_adv_discov_flags() local
927 cmd = pending_find(MGMT_OP_SET_DISCOVERABLE, hdev); in get_adv_discov_flags()
928 if (cmd) { in get_adv_discov_flags()
929 struct mgmt_mode *cp = cmd->param; in get_adv_discov_flags()
960 struct mgmt_pending_cmd *cmd; in get_connectable() local
965 cmd = pending_find(MGMT_OP_SET_CONNECTABLE, hdev); in get_connectable()
966 if (cmd) { in get_connectable()
967 struct mgmt_mode *cp = cmd->param; in get_connectable()
1551 struct mgmt_pending_cmd *cmd; in set_powered() local
1584 cmd = mgmt_pending_add(sk, MGMT_OP_SET_POWERED, hdev, data, len); in set_powered()
1585 if (!cmd) { in set_powered()
1632 static void settings_rsp(struct mgmt_pending_cmd *cmd, void *data) in settings_rsp() argument
1636 send_settings_rsp(cmd->sk, cmd->opcode, match->hdev); in settings_rsp()
1638 list_del(&cmd->list); in settings_rsp()
1641 match->sk = cmd->sk; in settings_rsp()
1645 mgmt_pending_free(cmd); in settings_rsp()
1648 static void cmd_status_rsp(struct mgmt_pending_cmd *cmd, void *data) in cmd_status_rsp() argument
1652 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, *status); in cmd_status_rsp()
1653 mgmt_pending_remove(cmd); in cmd_status_rsp()
1656 static void cmd_complete_rsp(struct mgmt_pending_cmd *cmd, void *data) in cmd_complete_rsp() argument
1658 if (cmd->cmd_complete) { in cmd_complete_rsp()
1661 cmd->cmd_complete(cmd, *status); in cmd_complete_rsp()
1662 mgmt_pending_remove(cmd); in cmd_complete_rsp()
1667 cmd_status_rsp(cmd, data); in cmd_complete_rsp()
1670 static int generic_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) in generic_cmd_complete() argument
1672 return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, in generic_cmd_complete()
1673 cmd->param, cmd->param_len); in generic_cmd_complete()
1676 static int addr_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) in addr_cmd_complete() argument
1678 return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, in addr_cmd_complete()
1679 cmd->param, sizeof(struct mgmt_addr_info)); in addr_cmd_complete()
1705 struct mgmt_pending_cmd *cmd; in set_discoverable_complete() local
1714 cmd = pending_find(MGMT_OP_SET_DISCOVERABLE, hdev); in set_discoverable_complete()
1715 if (!cmd) in set_discoverable_complete()
1720 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); in set_discoverable_complete()
1725 cp = cmd->param; in set_discoverable_complete()
1738 send_settings_rsp(cmd->sk, MGMT_OP_SET_DISCOVERABLE, hdev); in set_discoverable_complete()
1741 new_settings(hdev, cmd->sk); in set_discoverable_complete()
1754 mgmt_pending_remove(cmd); in set_discoverable_complete()
1764 struct mgmt_pending_cmd *cmd; in set_discoverable() local
1854 cmd = mgmt_pending_add(sk, MGMT_OP_SET_DISCOVERABLE, hdev, data, len); in set_discoverable()
1855 if (!cmd) { in set_discoverable()
1918 mgmt_pending_remove(cmd); in set_discoverable()
1963 struct mgmt_pending_cmd *cmd; in set_connectable_complete() local
1971 cmd = pending_find(MGMT_OP_SET_CONNECTABLE, hdev); in set_connectable_complete()
1972 if (!cmd) in set_connectable_complete()
1977 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); in set_connectable_complete()
1981 cp = cmd->param; in set_connectable_complete()
1993 send_settings_rsp(cmd->sk, MGMT_OP_SET_CONNECTABLE, hdev); in set_connectable_complete()
1996 new_settings(hdev, cmd->sk); in set_connectable_complete()
2004 mgmt_pending_remove(cmd); in set_connectable_complete()
2043 struct mgmt_pending_cmd *cmd; in set_connectable() local
2073 cmd = mgmt_pending_add(sk, MGMT_OP_SET_CONNECTABLE, hdev, data, len); in set_connectable()
2074 if (!cmd) { in set_connectable()
2124 mgmt_pending_remove(cmd); in set_connectable()
2172 struct mgmt_pending_cmd *cmd; in set_link_security() local
2220 cmd = mgmt_pending_add(sk, MGMT_OP_SET_LINK_SECURITY, hdev, data, len); in set_link_security()
2221 if (!cmd) { in set_link_security()
2228 mgmt_pending_remove(cmd); in set_link_security()
2240 struct mgmt_pending_cmd *cmd; in set_ssp() local
2297 cmd = mgmt_pending_add(sk, MGMT_OP_SET_SSP, hdev, data, len); in set_ssp()
2298 if (!cmd) { in set_ssp()
2309 mgmt_pending_remove(cmd); in set_ssp()
2419 struct mgmt_pending_cmd *cmd; in set_le() local
2486 cmd = mgmt_pending_add(sk, MGMT_OP_SET_LE, hdev, data, len); in set_le()
2487 if (!cmd) { in set_le()
2509 mgmt_pending_remove(cmd); in set_le()
2524 struct mgmt_pending_cmd *cmd; in pending_eir_or_class() local
2526 list_for_each_entry(cmd, &hdev->mgmt_pending, list) { in pending_eir_or_class()
2527 switch (cmd->opcode) { in pending_eir_or_class()
2560 struct mgmt_pending_cmd *cmd; in mgmt_class_complete() local
2564 cmd = pending_find(mgmt_op, hdev); in mgmt_class_complete()
2565 if (!cmd) in mgmt_class_complete()
2568 mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, in mgmt_class_complete()
2571 mgmt_pending_remove(cmd); in mgmt_class_complete()
2587 struct mgmt_pending_cmd *cmd; in add_uuid() local
2629 cmd = mgmt_pending_add(sk, MGMT_OP_ADD_UUID, hdev, data, len); in add_uuid()
2630 if (!cmd) { in add_uuid()
2667 struct mgmt_pending_cmd *cmd; in remove_uuid() local
2729 cmd = mgmt_pending_add(sk, MGMT_OP_REMOVE_UUID, hdev, data, len); in remove_uuid()
2730 if (!cmd) { in remove_uuid()
2753 struct mgmt_pending_cmd *cmd; in set_dev_class() local
2807 cmd = mgmt_pending_add(sk, MGMT_OP_SET_DEV_CLASS, hdev, data, len); in set_dev_class()
2808 if (!cmd) { in set_dev_class()
2920 struct mgmt_pending_cmd *cmd; in unpair_device() local
3011 cmd = mgmt_pending_add(sk, MGMT_OP_UNPAIR_DEVICE, hdev, cp, in unpair_device()
3013 if (!cmd) { in unpair_device()
3018 cmd->cmd_complete = addr_cmd_complete; in unpair_device()
3024 mgmt_pending_remove(cmd); in unpair_device()
3036 struct mgmt_pending_cmd *cmd; in disconnect() local
3079 cmd = mgmt_pending_add(sk, MGMT_OP_DISCONNECT, hdev, data, len); in disconnect()
3080 if (!cmd) { in disconnect()
3085 cmd->cmd_complete = generic_cmd_complete; in disconnect()
3089 mgmt_pending_remove(cmd); in disconnect()
3176 struct mgmt_pending_cmd *cmd; in send_pin_code_neg_reply() local
3179 cmd = mgmt_pending_add(sk, MGMT_OP_PIN_CODE_NEG_REPLY, hdev, cp, in send_pin_code_neg_reply()
3181 if (!cmd) in send_pin_code_neg_reply()
3187 mgmt_pending_remove(cmd); in send_pin_code_neg_reply()
3198 struct mgmt_pending_cmd *cmd; in pin_code_reply() local
3233 cmd = mgmt_pending_add(sk, MGMT_OP_PIN_CODE_REPLY, hdev, data, len); in pin_code_reply()
3234 if (!cmd) { in pin_code_reply()
3239 cmd->cmd_complete = addr_cmd_complete; in pin_code_reply()
3247 mgmt_pending_remove(cmd); in pin_code_reply()
3281 struct mgmt_pending_cmd *cmd; in find_pairing() local
3283 list_for_each_entry(cmd, &hdev->mgmt_pending, list) { in find_pairing()
3284 if (cmd->opcode != MGMT_OP_PAIR_DEVICE) in find_pairing()
3287 if (cmd->user_data != conn) in find_pairing()
3290 return cmd; in find_pairing()
3296 static int pairing_complete(struct mgmt_pending_cmd *cmd, u8 status) in pairing_complete() argument
3299 struct hci_conn *conn = cmd->user_data; in pairing_complete()
3305 err = mgmt_cmd_complete(cmd->sk, cmd->index, MGMT_OP_PAIR_DEVICE, in pairing_complete()
3328 struct mgmt_pending_cmd *cmd; in mgmt_smp_complete() local
3330 cmd = find_pairing(conn); in mgmt_smp_complete()
3331 if (cmd) { in mgmt_smp_complete()
3332 cmd->cmd_complete(cmd, status); in mgmt_smp_complete()
3333 mgmt_pending_remove(cmd); in mgmt_smp_complete()
3339 struct mgmt_pending_cmd *cmd; in pairing_complete_cb() local
3343 cmd = find_pairing(conn); in pairing_complete_cb()
3344 if (!cmd) { in pairing_complete_cb()
3349 cmd->cmd_complete(cmd, mgmt_status(status)); in pairing_complete_cb()
3350 mgmt_pending_remove(cmd); in pairing_complete_cb()
3355 struct mgmt_pending_cmd *cmd; in le_pairing_complete_cb() local
3362 cmd = find_pairing(conn); in le_pairing_complete_cb()
3363 if (!cmd) { in le_pairing_complete_cb()
3368 cmd->cmd_complete(cmd, mgmt_status(status)); in le_pairing_complete_cb()
3369 mgmt_pending_remove(cmd); in le_pairing_complete_cb()
3377 struct mgmt_pending_cmd *cmd; in pair_device() local
3470 cmd = mgmt_pending_add(sk, MGMT_OP_PAIR_DEVICE, hdev, data, len); in pair_device()
3471 if (!cmd) { in pair_device()
3477 cmd->cmd_complete = pairing_complete; in pair_device()
3491 cmd->user_data = hci_conn_get(conn); in pair_device()
3495 cmd->cmd_complete(cmd, 0); in pair_device()
3496 mgmt_pending_remove(cmd); in pair_device()
3510 struct mgmt_pending_cmd *cmd; in cancel_pair_device() local
3524 cmd = pending_find(MGMT_OP_PAIR_DEVICE, hdev); in cancel_pair_device()
3525 if (!cmd) { in cancel_pair_device()
3531 conn = cmd->user_data; in cancel_pair_device()
3539 cmd->cmd_complete(cmd, MGMT_STATUS_CANCELLED); in cancel_pair_device()
3540 mgmt_pending_remove(cmd); in cancel_pair_device()
3553 struct mgmt_pending_cmd *cmd; in user_pairing_resp() local
3592 cmd = mgmt_pending_add(sk, mgmt_op, hdev, addr, sizeof(*addr)); in user_pairing_resp()
3593 if (!cmd) { in user_pairing_resp()
3598 cmd->cmd_complete = addr_cmd_complete; in user_pairing_resp()
3612 mgmt_pending_remove(cmd); in user_pairing_resp()
3696 struct mgmt_pending_cmd *cmd; in set_name_complete() local
3702 cmd = pending_find(MGMT_OP_SET_LOCAL_NAME, hdev); in set_name_complete()
3703 if (!cmd) in set_name_complete()
3706 cp = cmd->param; in set_name_complete()
3709 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, in set_name_complete()
3712 mgmt_cmd_complete(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, in set_name_complete()
3715 mgmt_pending_remove(cmd); in set_name_complete()
3725 struct mgmt_pending_cmd *cmd; in set_local_name() local
3760 cmd = mgmt_pending_add(sk, MGMT_OP_SET_LOCAL_NAME, hdev, data, len); in set_local_name()
3761 if (!cmd) { in set_local_name()
3783 mgmt_pending_remove(cmd); in set_local_name()
3795 struct mgmt_pending_cmd *cmd; in read_local_oob_data_complete() local
3799 cmd = pending_find(MGMT_OP_READ_LOCAL_OOB_DATA, hdev); in read_local_oob_data_complete()
3800 if (!cmd) in read_local_oob_data_complete()
3804 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, in read_local_oob_data_complete()
3815 mgmt_cmd_status(cmd->sk, hdev->id, in read_local_oob_data_complete()
3829 mgmt_cmd_status(cmd->sk, hdev->id, in read_local_oob_data_complete()
3842 mgmt_cmd_complete(cmd->sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, in read_local_oob_data_complete()
3846 mgmt_pending_remove(cmd); in read_local_oob_data_complete()
3852 struct mgmt_pending_cmd *cmd; in read_local_oob_data() local
3878 cmd = mgmt_pending_add(sk, MGMT_OP_READ_LOCAL_OOB_DATA, hdev, NULL, 0); in read_local_oob_data()
3879 if (!cmd) { in read_local_oob_data()
3893 mgmt_pending_remove(cmd); in read_local_oob_data()
4180 struct mgmt_pending_cmd *cmd; in start_discovery_complete() local
4187 cmd = pending_find(MGMT_OP_START_DISCOVERY, hdev); in start_discovery_complete()
4188 if (!cmd) in start_discovery_complete()
4189 cmd = pending_find(MGMT_OP_START_SERVICE_DISCOVERY, hdev); in start_discovery_complete()
4191 if (cmd) { in start_discovery_complete()
4192 cmd->cmd_complete(cmd, mgmt_status(status)); in start_discovery_complete()
4193 mgmt_pending_remove(cmd); in start_discovery_complete()
4258 struct mgmt_pending_cmd *cmd; in start_discovery() local
4282 cmd = mgmt_pending_add(sk, MGMT_OP_START_DISCOVERY, hdev, data, len); in start_discovery()
4283 if (!cmd) { in start_discovery()
4288 cmd->cmd_complete = generic_cmd_complete; in start_discovery()
4303 mgmt_pending_remove(cmd); in start_discovery()
4309 mgmt_pending_remove(cmd); in start_discovery()
4320 static int service_discovery_cmd_complete(struct mgmt_pending_cmd *cmd, in service_discovery_cmd_complete() argument
4323 return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, in service_discovery_cmd_complete()
4324 cmd->param, 1); in service_discovery_cmd_complete()
4331 struct mgmt_pending_cmd *cmd; in start_service_discovery() local
4381 cmd = mgmt_pending_add(sk, MGMT_OP_START_SERVICE_DISCOVERY, in start_service_discovery()
4383 if (!cmd) { in start_service_discovery()
4388 cmd->cmd_complete = service_discovery_cmd_complete; in start_service_discovery()
4408 mgmt_pending_remove(cmd); in start_service_discovery()
4419 mgmt_pending_remove(cmd); in start_service_discovery()
4425 mgmt_pending_remove(cmd); in start_service_discovery()
4438 struct mgmt_pending_cmd *cmd; in stop_discovery_complete() local
4444 cmd = pending_find(MGMT_OP_STOP_DISCOVERY, hdev); in stop_discovery_complete()
4445 if (cmd) { in stop_discovery_complete()
4446 cmd->cmd_complete(cmd, mgmt_status(status)); in stop_discovery_complete()
4447 mgmt_pending_remove(cmd); in stop_discovery_complete()
4460 struct mgmt_pending_cmd *cmd; in stop_discovery() local
4482 cmd = mgmt_pending_add(sk, MGMT_OP_STOP_DISCOVERY, hdev, data, len); in stop_discovery()
4483 if (!cmd) { in stop_discovery()
4488 cmd->cmd_complete = generic_cmd_complete; in stop_discovery()
4500 mgmt_pending_remove(cmd); in stop_discovery()
4721 struct mgmt_pending_cmd *cmd; in set_advertising() local
4782 cmd = mgmt_pending_add(sk, MGMT_OP_SET_ADVERTISING, hdev, data, len); in set_advertising()
4783 if (!cmd) { in set_advertising()
4806 mgmt_pending_remove(cmd); in set_advertising()
4917 struct mgmt_pending_cmd *cmd; in fast_connectable_complete() local
4923 cmd = pending_find(MGMT_OP_SET_FAST_CONNECTABLE, hdev); in fast_connectable_complete()
4924 if (!cmd) in fast_connectable_complete()
4928 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, in fast_connectable_complete()
4931 struct mgmt_mode *cp = cmd->param; in fast_connectable_complete()
4938 send_settings_rsp(cmd->sk, MGMT_OP_SET_FAST_CONNECTABLE, hdev); in fast_connectable_complete()
4939 new_settings(hdev, cmd->sk); in fast_connectable_complete()
4942 mgmt_pending_remove(cmd); in fast_connectable_complete()
4952 struct mgmt_pending_cmd *cmd; in set_fast_connectable() local
4989 cmd = mgmt_pending_add(sk, MGMT_OP_SET_FAST_CONNECTABLE, hdev, in set_fast_connectable()
4991 if (!cmd) { in set_fast_connectable()
5004 mgmt_pending_remove(cmd); in set_fast_connectable()
5015 struct mgmt_pending_cmd *cmd; in set_bredr_complete() local
5021 cmd = pending_find(MGMT_OP_SET_BREDR, hdev); in set_bredr_complete()
5022 if (!cmd) in set_bredr_complete()
5033 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); in set_bredr_complete()
5035 send_settings_rsp(cmd->sk, MGMT_OP_SET_BREDR, hdev); in set_bredr_complete()
5036 new_settings(hdev, cmd->sk); in set_bredr_complete()
5039 mgmt_pending_remove(cmd); in set_bredr_complete()
5048 struct mgmt_pending_cmd *cmd; in set_bredr() local
5127 cmd = mgmt_pending_add(sk, MGMT_OP_SET_BREDR, hdev, data, len); in set_bredr()
5128 if (!cmd) { in set_bredr()
5150 mgmt_pending_remove(cmd); in set_bredr()
5159 struct mgmt_pending_cmd *cmd; in sc_enable_complete() local
5166 cmd = pending_find(MGMT_OP_SET_SECURE_CONN, hdev); in sc_enable_complete()
5167 if (!cmd) in sc_enable_complete()
5171 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, in sc_enable_complete()
5176 cp = cmd->param; in sc_enable_complete()
5193 send_settings_rsp(cmd->sk, MGMT_OP_SET_SECURE_CONN, hdev); in sc_enable_complete()
5194 new_settings(hdev, cmd->sk); in sc_enable_complete()
5197 mgmt_pending_remove(cmd); in sc_enable_complete()
5206 struct mgmt_pending_cmd *cmd; in set_secure_conn() local
5271 cmd = mgmt_pending_add(sk, MGMT_OP_SET_SECURE_CONN, hdev, data, len); in set_secure_conn()
5272 if (!cmd) { in set_secure_conn()
5281 mgmt_pending_remove(cmd); in set_secure_conn()
5581 static int conn_info_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) in conn_info_cmd_complete() argument
5583 struct hci_conn *conn = cmd->user_data; in conn_info_cmd_complete()
5587 memcpy(&rp.addr, cmd->param, sizeof(rp.addr)); in conn_info_cmd_complete()
5599 err = mgmt_cmd_complete(cmd->sk, cmd->index, MGMT_OP_GET_CONN_INFO, in conn_info_cmd_complete()
5612 struct mgmt_pending_cmd *cmd; in conn_info_refresh_complete() local
5650 cmd = pending_find_data(MGMT_OP_GET_CONN_INFO, hdev, conn); in conn_info_refresh_complete()
5651 if (!cmd) in conn_info_refresh_complete()
5654 cmd->cmd_complete(cmd, status); in conn_info_refresh_complete()
5655 mgmt_pending_remove(cmd); in conn_info_refresh_complete()
5725 struct mgmt_pending_cmd *cmd; in get_conn_info() local
5755 cmd = mgmt_pending_add(sk, MGMT_OP_GET_CONN_INFO, hdev, in get_conn_info()
5757 if (!cmd) { in get_conn_info()
5763 cmd->user_data = hci_conn_get(conn); in get_conn_info()
5764 cmd->cmd_complete = conn_info_cmd_complete; in get_conn_info()
5782 static int clock_info_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) in clock_info_cmd_complete() argument
5784 struct hci_conn *conn = cmd->user_data; in clock_info_cmd_complete()
5790 memcpy(&rp.addr, &cmd->param, sizeof(rp.addr)); in clock_info_cmd_complete()
5795 hdev = hci_dev_get(cmd->index); in clock_info_cmd_complete()
5807 err = mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, &rp, in clock_info_cmd_complete()
5821 struct mgmt_pending_cmd *cmd; in get_clock_info_complete() local
5839 cmd = pending_find_data(MGMT_OP_GET_CLOCK_INFO, hdev, conn); in get_clock_info_complete()
5840 if (!cmd) in get_clock_info_complete()
5843 cmd->cmd_complete(cmd, mgmt_status(status)); in get_clock_info_complete()
5844 mgmt_pending_remove(cmd); in get_clock_info_complete()
5856 struct mgmt_pending_cmd *cmd; in get_clock_info() local
5895 cmd = mgmt_pending_add(sk, MGMT_OP_GET_CLOCK_INFO, hdev, data, len); in get_clock_info()
5896 if (!cmd) { in get_clock_info()
5901 cmd->cmd_complete = clock_info_cmd_complete; in get_clock_info()
5910 cmd->user_data = hci_conn_get(conn); in get_clock_info()
5919 mgmt_pending_remove(cmd); in get_clock_info()
5999 struct mgmt_pending_cmd *cmd; in add_device_complete() local
6005 cmd = pending_find(MGMT_OP_ADD_DEVICE, hdev); in add_device_complete()
6006 if (!cmd) in add_device_complete()
6009 cmd->cmd_complete(cmd, mgmt_status(status)); in add_device_complete()
6010 mgmt_pending_remove(cmd); in add_device_complete()
6020 struct mgmt_pending_cmd *cmd; in add_device() local
6042 cmd = mgmt_pending_add(sk, MGMT_OP_ADD_DEVICE, hdev, data, len); in add_device()
6043 if (!cmd) { in add_device()
6048 cmd->cmd_complete = addr_cmd_complete; in add_device()
6053 err = cmd->cmd_complete(cmd, in add_device()
6055 mgmt_pending_remove(cmd); in add_device()
6086 err = cmd->cmd_complete(cmd, MGMT_STATUS_FAILED); in add_device()
6087 mgmt_pending_remove(cmd); in add_device()
6100 err = cmd->cmd_complete(cmd, MGMT_STATUS_SUCCESS); in add_device()
6101 mgmt_pending_remove(cmd); in add_device()
6122 struct mgmt_pending_cmd *cmd; in remove_device_complete() local
6128 cmd = pending_find(MGMT_OP_REMOVE_DEVICE, hdev); in remove_device_complete()
6129 if (!cmd) in remove_device_complete()
6132 cmd->cmd_complete(cmd, mgmt_status(status)); in remove_device_complete()
6133 mgmt_pending_remove(cmd); in remove_device_complete()
6143 struct mgmt_pending_cmd *cmd; in remove_device() local
6153 cmd = mgmt_pending_add(sk, MGMT_OP_REMOVE_DEVICE, hdev, data, len); in remove_device()
6154 if (!cmd) { in remove_device()
6159 cmd->cmd_complete = addr_cmd_complete; in remove_device()
6166 err = cmd->cmd_complete(cmd, in remove_device()
6168 mgmt_pending_remove(cmd); in remove_device()
6177 err = cmd->cmd_complete(cmd, in remove_device()
6179 mgmt_pending_remove(cmd); in remove_device()
6198 err = cmd->cmd_complete(cmd, in remove_device()
6200 mgmt_pending_remove(cmd); in remove_device()
6205 err = cmd->cmd_complete(cmd, in remove_device()
6207 mgmt_pending_remove(cmd); in remove_device()
6222 err = cmd->cmd_complete(cmd, in remove_device()
6224 mgmt_pending_remove(cmd); in remove_device()
6257 err = cmd->cmd_complete(cmd, MGMT_STATUS_SUCCESS); in remove_device()
6258 mgmt_pending_remove(cmd); in remove_device()
6477 struct mgmt_pending_cmd *cmd; in read_local_oob_ext_data_complete() local
6483 cmd = pending_find(MGMT_OP_READ_LOCAL_OOB_EXT_DATA, hdev); in read_local_oob_ext_data_complete()
6484 if (!cmd) in read_local_oob_ext_data_complete()
6487 mgmt_cp = cmd->param; in read_local_oob_ext_data_complete()
6566 err = mgmt_cmd_complete(cmd->sk, hdev->id, in read_local_oob_ext_data_complete()
6572 hci_sock_set_flag(cmd->sk, HCI_MGMT_OOB_DATA_EVENTS); in read_local_oob_ext_data_complete()
6576 HCI_MGMT_OOB_DATA_EVENTS, cmd->sk); in read_local_oob_ext_data_complete()
6579 mgmt_pending_remove(cmd); in read_local_oob_ext_data_complete()
6585 struct mgmt_pending_cmd *cmd; in read_local_ssp_oob_req() local
6589 cmd = mgmt_pending_add(sk, MGMT_OP_READ_LOCAL_OOB_EXT_DATA, hdev, in read_local_ssp_oob_req()
6591 if (!cmd) in read_local_ssp_oob_req()
6603 mgmt_pending_remove(cmd); in read_local_ssp_oob_req()
6886 struct mgmt_pending_cmd *cmd; in add_advertising_complete() local
6893 cmd = pending_find(MGMT_OP_ADD_ADVERTISING, hdev); in add_advertising_complete()
6898 advertising_removed(cmd ? cmd->sk : NULL, hdev, 1); in add_advertising_complete()
6901 if (!cmd) in add_advertising_complete()
6907 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, in add_advertising_complete()
6910 mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, in add_advertising_complete()
6913 mgmt_pending_remove(cmd); in add_advertising_complete()
6941 struct mgmt_pending_cmd *cmd; in add_advertising() local
7026 cmd = mgmt_pending_add(sk, MGMT_OP_ADD_ADVERTISING, hdev, data, in add_advertising()
7028 if (!cmd) { in add_advertising()
7041 mgmt_pending_remove(cmd); in add_advertising()
7052 struct mgmt_pending_cmd *cmd; in remove_advertising_complete() local
7063 cmd = pending_find(MGMT_OP_REMOVE_ADVERTISING, hdev); in remove_advertising_complete()
7064 if (!cmd) in remove_advertising_complete()
7069 mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, MGMT_STATUS_SUCCESS, in remove_advertising_complete()
7071 mgmt_pending_remove(cmd); in remove_advertising_complete()
7083 struct mgmt_pending_cmd *cmd; in remove_advertising() local
7132 cmd = mgmt_pending_add(sk, MGMT_OP_REMOVE_ADVERTISING, hdev, data, in remove_advertising()
7134 if (!cmd) { in remove_advertising()
7144 mgmt_pending_remove(cmd); in remove_advertising()
7485 struct mgmt_pending_cmd *cmd; in mgmt_set_powered_failed() local
7488 cmd = pending_find(MGMT_OP_SET_POWERED, hdev); in mgmt_set_powered_failed()
7489 if (!cmd) in mgmt_set_powered_failed()
7497 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_POWERED, status); in mgmt_set_powered_failed()
7499 mgmt_pending_remove(cmd); in mgmt_set_powered_failed()
7731 static void disconnect_rsp(struct mgmt_pending_cmd *cmd, void *data) in disconnect_rsp() argument
7735 cmd->cmd_complete(cmd, 0); in disconnect_rsp()
7737 *sk = cmd->sk; in disconnect_rsp()
7740 mgmt_pending_remove(cmd); in disconnect_rsp()
7743 static void unpair_device_rsp(struct mgmt_pending_cmd *cmd, void *data) in unpair_device_rsp() argument
7746 struct mgmt_cp_unpair_device *cp = cmd->param; in unpair_device_rsp()
7748 device_unpaired(hdev, &cp->addr.bdaddr, cp->addr.type, cmd->sk); in unpair_device_rsp()
7750 cmd->cmd_complete(cmd, 0); in unpair_device_rsp()
7751 mgmt_pending_remove(cmd); in unpair_device_rsp()
7756 struct mgmt_pending_cmd *cmd; in mgmt_powering_down() local
7759 cmd = pending_find(MGMT_OP_SET_POWERED, hdev); in mgmt_powering_down()
7760 if (!cmd) in mgmt_powering_down()
7763 cp = cmd->param; in mgmt_powering_down()
7811 struct mgmt_pending_cmd *cmd; in mgmt_disconnect_failed() local
7816 cmd = pending_find(MGMT_OP_DISCONNECT, hdev); in mgmt_disconnect_failed()
7817 if (!cmd) in mgmt_disconnect_failed()
7820 cp = cmd->param; in mgmt_disconnect_failed()
7828 cmd->cmd_complete(cmd, mgmt_status(status)); in mgmt_disconnect_failed()
7829 mgmt_pending_remove(cmd); in mgmt_disconnect_failed()
7866 struct mgmt_pending_cmd *cmd; in mgmt_pin_code_reply_complete() local
7868 cmd = pending_find(MGMT_OP_PIN_CODE_REPLY, hdev); in mgmt_pin_code_reply_complete()
7869 if (!cmd) in mgmt_pin_code_reply_complete()
7872 cmd->cmd_complete(cmd, mgmt_status(status)); in mgmt_pin_code_reply_complete()
7873 mgmt_pending_remove(cmd); in mgmt_pin_code_reply_complete()
7879 struct mgmt_pending_cmd *cmd; in mgmt_pin_code_neg_reply_complete() local
7881 cmd = pending_find(MGMT_OP_PIN_CODE_NEG_REPLY, hdev); in mgmt_pin_code_neg_reply_complete()
7882 if (!cmd) in mgmt_pin_code_neg_reply_complete()
7885 cmd->cmd_complete(cmd, mgmt_status(status)); in mgmt_pin_code_neg_reply_complete()
7886 mgmt_pending_remove(cmd); in mgmt_pin_code_neg_reply_complete()
7924 struct mgmt_pending_cmd *cmd; in user_pairing_resp_complete() local
7926 cmd = pending_find(opcode, hdev); in user_pairing_resp_complete()
7927 if (!cmd) in user_pairing_resp_complete()
7930 cmd->cmd_complete(cmd, mgmt_status(status)); in user_pairing_resp_complete()
7931 mgmt_pending_remove(cmd); in user_pairing_resp_complete()
7985 struct mgmt_pending_cmd *cmd; in mgmt_auth_failed() local
7992 cmd = find_pairing(conn); in mgmt_auth_failed()
7995 cmd ? cmd->sk : NULL); in mgmt_auth_failed()
7997 if (cmd) { in mgmt_auth_failed()
7998 cmd->cmd_complete(cmd, status); in mgmt_auth_failed()
7999 mgmt_pending_remove(cmd); in mgmt_auth_failed()
8098 static void sk_lookup(struct mgmt_pending_cmd *cmd, void *data) in sk_lookup() argument
8103 match->sk = cmd->sk; in sk_lookup()
8128 struct mgmt_pending_cmd *cmd; in mgmt_set_local_name_complete() local
8137 cmd = pending_find(MGMT_OP_SET_LOCAL_NAME, hdev); in mgmt_set_local_name_complete()
8138 if (!cmd) { in mgmt_set_local_name_complete()
8149 cmd ? cmd->sk : NULL); in mgmt_set_local_name_complete()