diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2015-03-06 14:08:54 -0500 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2015-03-06 14:15:21 -0500 |
commit | 2a1afb5ac8d580d2013c2ccc548b4f2689c5ad7a (patch) | |
tree | fd3797d59b8eaa6d7120663c8a4685e0a775afc2 /net/bluetooth | |
parent | a69e8375a134eb7f42d5de7e14d0816967282757 (diff) |
Bluetooth: Rename cmd_complete() to mgmt_cmd_complete()
This patch renames the cmd_complete() function to mgmt_cmd_complete() in
preparation of making it a generic helper for other modules to use too.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/mgmt.c | 442 |
1 files changed, 229 insertions, 213 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 6f20b78e1965..835a459531ab 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
@@ -279,8 +279,8 @@ static int mgmt_cmd_status(struct sock *sk, u16 index, u16 cmd, u8 status) | |||
279 | return err; | 279 | return err; |
280 | } | 280 | } |
281 | 281 | ||
282 | static int cmd_complete(struct sock *sk, u16 index, u16 cmd, u8 status, | 282 | static int mgmt_cmd_complete(struct sock *sk, u16 index, u16 cmd, u8 status, |
283 | void *rp, size_t rp_len) | 283 | void *rp, size_t rp_len) |
284 | { | 284 | { |
285 | struct sk_buff *skb; | 285 | struct sk_buff *skb; |
286 | struct mgmt_hdr *hdr; | 286 | struct mgmt_hdr *hdr; |
@@ -323,8 +323,8 @@ static int read_version(struct sock *sk, struct hci_dev *hdev, void *data, | |||
323 | rp.version = MGMT_VERSION; | 323 | rp.version = MGMT_VERSION; |
324 | rp.revision = cpu_to_le16(MGMT_REVISION); | 324 | rp.revision = cpu_to_le16(MGMT_REVISION); |
325 | 325 | ||
326 | return cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_VERSION, 0, &rp, | 326 | return mgmt_cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_VERSION, 0, |
327 | sizeof(rp)); | 327 | &rp, sizeof(rp)); |
328 | } | 328 | } |
329 | 329 | ||
330 | static int read_commands(struct sock *sk, struct hci_dev *hdev, void *data, | 330 | static int read_commands(struct sock *sk, struct hci_dev *hdev, void *data, |
@@ -354,8 +354,8 @@ static int read_commands(struct sock *sk, struct hci_dev *hdev, void *data, | |||
354 | for (i = 0; i < num_events; i++, opcode++) | 354 | for (i = 0; i < num_events; i++, opcode++) |
355 | put_unaligned_le16(mgmt_events[i], opcode); | 355 | put_unaligned_le16(mgmt_events[i], opcode); |
356 | 356 | ||
357 | err = cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_COMMANDS, 0, rp, | 357 | err = mgmt_cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_COMMANDS, 0, |
358 | rp_size); | 358 | rp, rp_size); |
359 | kfree(rp); | 359 | kfree(rp); |
360 | 360 | ||
361 | return err; | 361 | return err; |
@@ -413,8 +413,8 @@ static int read_index_list(struct sock *sk, struct hci_dev *hdev, void *data, | |||
413 | 413 | ||
414 | read_unlock(&hci_dev_list_lock); | 414 | read_unlock(&hci_dev_list_lock); |
415 | 415 | ||
416 | err = cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_INDEX_LIST, 0, rp, | 416 | err = mgmt_cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_INDEX_LIST, |
417 | rp_len); | 417 | 0, rp, rp_len); |
418 | 418 | ||
419 | kfree(rp); | 419 | kfree(rp); |
420 | 420 | ||
@@ -473,8 +473,8 @@ static int read_unconf_index_list(struct sock *sk, struct hci_dev *hdev, | |||
473 | 473 | ||
474 | read_unlock(&hci_dev_list_lock); | 474 | read_unlock(&hci_dev_list_lock); |
475 | 475 | ||
476 | err = cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_UNCONF_INDEX_LIST, | 476 | err = mgmt_cmd_complete(sk, MGMT_INDEX_NONE, |
477 | 0, rp, rp_len); | 477 | MGMT_OP_READ_UNCONF_INDEX_LIST, 0, rp, rp_len); |
478 | 478 | ||
479 | kfree(rp); | 479 | kfree(rp); |
480 | 480 | ||
@@ -521,8 +521,8 @@ static int send_options_rsp(struct sock *sk, u16 opcode, struct hci_dev *hdev) | |||
521 | { | 521 | { |
522 | __le32 options = get_missing_options(hdev); | 522 | __le32 options = get_missing_options(hdev); |
523 | 523 | ||
524 | return cmd_complete(sk, hdev->id, opcode, 0, &options, | 524 | return mgmt_cmd_complete(sk, hdev->id, opcode, 0, &options, |
525 | sizeof(options)); | 525 | sizeof(options)); |
526 | } | 526 | } |
527 | 527 | ||
528 | static int read_config_info(struct sock *sk, struct hci_dev *hdev, | 528 | static int read_config_info(struct sock *sk, struct hci_dev *hdev, |
@@ -549,8 +549,8 @@ static int read_config_info(struct sock *sk, struct hci_dev *hdev, | |||
549 | 549 | ||
550 | hci_dev_unlock(hdev); | 550 | hci_dev_unlock(hdev); |
551 | 551 | ||
552 | return cmd_complete(sk, hdev->id, MGMT_OP_READ_CONFIG_INFO, 0, &rp, | 552 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_READ_CONFIG_INFO, 0, |
553 | sizeof(rp)); | 553 | &rp, sizeof(rp)); |
554 | } | 554 | } |
555 | 555 | ||
556 | static u32 get_supported_settings(struct hci_dev *hdev) | 556 | static u32 get_supported_settings(struct hci_dev *hdev) |
@@ -1206,8 +1206,8 @@ static int read_controller_info(struct sock *sk, struct hci_dev *hdev, | |||
1206 | 1206 | ||
1207 | hci_dev_unlock(hdev); | 1207 | hci_dev_unlock(hdev); |
1208 | 1208 | ||
1209 | return cmd_complete(sk, hdev->id, MGMT_OP_READ_INFO, 0, &rp, | 1209 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_READ_INFO, 0, &rp, |
1210 | sizeof(rp)); | 1210 | sizeof(rp)); |
1211 | } | 1211 | } |
1212 | 1212 | ||
1213 | static void mgmt_pending_free(struct pending_cmd *cmd) | 1213 | static void mgmt_pending_free(struct pending_cmd *cmd) |
@@ -1271,8 +1271,8 @@ static int send_settings_rsp(struct sock *sk, u16 opcode, struct hci_dev *hdev) | |||
1271 | { | 1271 | { |
1272 | __le32 settings = cpu_to_le32(get_current_settings(hdev)); | 1272 | __le32 settings = cpu_to_le32(get_current_settings(hdev)); |
1273 | 1273 | ||
1274 | return cmd_complete(sk, hdev->id, opcode, 0, &settings, | 1274 | return mgmt_cmd_complete(sk, hdev->id, opcode, 0, &settings, |
1275 | sizeof(settings)); | 1275 | sizeof(settings)); |
1276 | } | 1276 | } |
1277 | 1277 | ||
1278 | static void clean_up_hci_complete(struct hci_dev *hdev, u8 status, u16 opcode) | 1278 | static void clean_up_hci_complete(struct hci_dev *hdev, u8 status, u16 opcode) |
@@ -1512,14 +1512,14 @@ static void cmd_complete_rsp(struct pending_cmd *cmd, void *data) | |||
1512 | 1512 | ||
1513 | static int generic_cmd_complete(struct pending_cmd *cmd, u8 status) | 1513 | static int generic_cmd_complete(struct pending_cmd *cmd, u8 status) |
1514 | { | 1514 | { |
1515 | return cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, | 1515 | return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, |
1516 | cmd->param, cmd->param_len); | 1516 | cmd->param, cmd->param_len); |
1517 | } | 1517 | } |
1518 | 1518 | ||
1519 | static int addr_cmd_complete(struct pending_cmd *cmd, u8 status) | 1519 | static int addr_cmd_complete(struct pending_cmd *cmd, u8 status) |
1520 | { | 1520 | { |
1521 | return cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, cmd->param, | 1521 | return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, |
1522 | sizeof(struct mgmt_addr_info)); | 1522 | cmd->param, sizeof(struct mgmt_addr_info)); |
1523 | } | 1523 | } |
1524 | 1524 | ||
1525 | static u8 mgmt_bredr_support(struct hci_dev *hdev) | 1525 | static u8 mgmt_bredr_support(struct hci_dev *hdev) |
@@ -2407,8 +2407,8 @@ static void mgmt_class_complete(struct hci_dev *hdev, u16 mgmt_op, u8 status) | |||
2407 | if (!cmd) | 2407 | if (!cmd) |
2408 | goto unlock; | 2408 | goto unlock; |
2409 | 2409 | ||
2410 | cmd_complete(cmd->sk, cmd->index, cmd->opcode, mgmt_status(status), | 2410 | mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, |
2411 | hdev->dev_class, 3); | 2411 | mgmt_status(status), hdev->dev_class, 3); |
2412 | 2412 | ||
2413 | mgmt_pending_remove(cmd); | 2413 | mgmt_pending_remove(cmd); |
2414 | 2414 | ||
@@ -2463,8 +2463,8 @@ static int add_uuid(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2463 | if (err != -ENODATA) | 2463 | if (err != -ENODATA) |
2464 | goto failed; | 2464 | goto failed; |
2465 | 2465 | ||
2466 | err = cmd_complete(sk, hdev->id, MGMT_OP_ADD_UUID, 0, | 2466 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_ADD_UUID, 0, |
2467 | hdev->dev_class, 3); | 2467 | hdev->dev_class, 3); |
2468 | goto failed; | 2468 | goto failed; |
2469 | } | 2469 | } |
2470 | 2470 | ||
@@ -2526,8 +2526,9 @@ static int remove_uuid(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2526 | hci_uuids_clear(hdev); | 2526 | hci_uuids_clear(hdev); |
2527 | 2527 | ||
2528 | if (enable_service_cache(hdev)) { | 2528 | if (enable_service_cache(hdev)) { |
2529 | err = cmd_complete(sk, hdev->id, MGMT_OP_REMOVE_UUID, | 2529 | err = mgmt_cmd_complete(sk, hdev->id, |
2530 | 0, hdev->dev_class, 3); | 2530 | MGMT_OP_REMOVE_UUID, |
2531 | 0, hdev->dev_class, 3); | ||
2531 | goto unlock; | 2532 | goto unlock; |
2532 | } | 2533 | } |
2533 | 2534 | ||
@@ -2562,8 +2563,8 @@ update_class: | |||
2562 | if (err != -ENODATA) | 2563 | if (err != -ENODATA) |
2563 | goto unlock; | 2564 | goto unlock; |
2564 | 2565 | ||
2565 | err = cmd_complete(sk, hdev->id, MGMT_OP_REMOVE_UUID, 0, | 2566 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_REMOVE_UUID, 0, |
2566 | hdev->dev_class, 3); | 2567 | hdev->dev_class, 3); |
2567 | goto unlock; | 2568 | goto unlock; |
2568 | } | 2569 | } |
2569 | 2570 | ||
@@ -2619,8 +2620,8 @@ static int set_dev_class(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2619 | hdev->minor_class = cp->minor; | 2620 | hdev->minor_class = cp->minor; |
2620 | 2621 | ||
2621 | if (!hdev_is_powered(hdev)) { | 2622 | if (!hdev_is_powered(hdev)) { |
2622 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, 0, | 2623 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, 0, |
2623 | hdev->dev_class, 3); | 2624 | hdev->dev_class, 3); |
2624 | goto unlock; | 2625 | goto unlock; |
2625 | } | 2626 | } |
2626 | 2627 | ||
@@ -2640,8 +2641,8 @@ static int set_dev_class(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2640 | if (err != -ENODATA) | 2641 | if (err != -ENODATA) |
2641 | goto unlock; | 2642 | goto unlock; |
2642 | 2643 | ||
2643 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, 0, | 2644 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, 0, |
2644 | hdev->dev_class, 3); | 2645 | hdev->dev_class, 3); |
2645 | goto unlock; | 2646 | goto unlock; |
2646 | } | 2647 | } |
2647 | 2648 | ||
@@ -2734,7 +2735,7 @@ static int load_link_keys(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2734 | key->type, key->pin_len, NULL); | 2735 | key->type, key->pin_len, NULL); |
2735 | } | 2736 | } |
2736 | 2737 | ||
2737 | cmd_complete(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, 0, NULL, 0); | 2738 | mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, 0, NULL, 0); |
2738 | 2739 | ||
2739 | hci_dev_unlock(hdev); | 2740 | hci_dev_unlock(hdev); |
2740 | 2741 | ||
@@ -2768,20 +2769,21 @@ static int unpair_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2768 | rp.addr.type = cp->addr.type; | 2769 | rp.addr.type = cp->addr.type; |
2769 | 2770 | ||
2770 | if (!bdaddr_type_is_valid(cp->addr.type)) | 2771 | if (!bdaddr_type_is_valid(cp->addr.type)) |
2771 | return cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, | 2772 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, |
2772 | MGMT_STATUS_INVALID_PARAMS, | 2773 | MGMT_STATUS_INVALID_PARAMS, |
2773 | &rp, sizeof(rp)); | 2774 | &rp, sizeof(rp)); |
2774 | 2775 | ||
2775 | if (cp->disconnect != 0x00 && cp->disconnect != 0x01) | 2776 | if (cp->disconnect != 0x00 && cp->disconnect != 0x01) |
2776 | return cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, | 2777 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, |
2777 | MGMT_STATUS_INVALID_PARAMS, | 2778 | MGMT_STATUS_INVALID_PARAMS, |
2778 | &rp, sizeof(rp)); | 2779 | &rp, sizeof(rp)); |
2779 | 2780 | ||
2780 | hci_dev_lock(hdev); | 2781 | hci_dev_lock(hdev); |
2781 | 2782 | ||
2782 | if (!hdev_is_powered(hdev)) { | 2783 | if (!hdev_is_powered(hdev)) { |
2783 | err = cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, | 2784 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, |
2784 | MGMT_STATUS_NOT_POWERED, &rp, sizeof(rp)); | 2785 | MGMT_STATUS_NOT_POWERED, &rp, |
2786 | sizeof(rp)); | ||
2785 | goto unlock; | 2787 | goto unlock; |
2786 | } | 2788 | } |
2787 | 2789 | ||
@@ -2831,8 +2833,9 @@ static int unpair_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2831 | } | 2833 | } |
2832 | 2834 | ||
2833 | if (err < 0) { | 2835 | if (err < 0) { |
2834 | err = cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, | 2836 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, |
2835 | MGMT_STATUS_NOT_PAIRED, &rp, sizeof(rp)); | 2837 | MGMT_STATUS_NOT_PAIRED, &rp, |
2838 | sizeof(rp)); | ||
2836 | goto unlock; | 2839 | goto unlock; |
2837 | } | 2840 | } |
2838 | 2841 | ||
@@ -2840,8 +2843,8 @@ static int unpair_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2840 | * link is requested. | 2843 | * link is requested. |
2841 | */ | 2844 | */ |
2842 | if (!conn) { | 2845 | if (!conn) { |
2843 | err = cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, 0, | 2846 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_UNPAIR_DEVICE, 0, |
2844 | &rp, sizeof(rp)); | 2847 | &rp, sizeof(rp)); |
2845 | device_unpaired(hdev, &cp->addr.bdaddr, cp->addr.type, sk); | 2848 | device_unpaired(hdev, &cp->addr.bdaddr, cp->addr.type, sk); |
2846 | goto unlock; | 2849 | goto unlock; |
2847 | } | 2850 | } |
@@ -2882,21 +2885,22 @@ static int disconnect(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2882 | rp.addr.type = cp->addr.type; | 2885 | rp.addr.type = cp->addr.type; |
2883 | 2886 | ||
2884 | if (!bdaddr_type_is_valid(cp->addr.type)) | 2887 | if (!bdaddr_type_is_valid(cp->addr.type)) |
2885 | return cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, | 2888 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, |
2886 | MGMT_STATUS_INVALID_PARAMS, | 2889 | MGMT_STATUS_INVALID_PARAMS, |
2887 | &rp, sizeof(rp)); | 2890 | &rp, sizeof(rp)); |
2888 | 2891 | ||
2889 | hci_dev_lock(hdev); | 2892 | hci_dev_lock(hdev); |
2890 | 2893 | ||
2891 | if (!test_bit(HCI_UP, &hdev->flags)) { | 2894 | if (!test_bit(HCI_UP, &hdev->flags)) { |
2892 | err = cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, | 2895 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, |
2893 | MGMT_STATUS_NOT_POWERED, &rp, sizeof(rp)); | 2896 | MGMT_STATUS_NOT_POWERED, &rp, |
2897 | sizeof(rp)); | ||
2894 | goto failed; | 2898 | goto failed; |
2895 | } | 2899 | } |
2896 | 2900 | ||
2897 | if (mgmt_pending_find(MGMT_OP_DISCONNECT, hdev)) { | 2901 | if (mgmt_pending_find(MGMT_OP_DISCONNECT, hdev)) { |
2898 | err = cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, | 2902 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, |
2899 | MGMT_STATUS_BUSY, &rp, sizeof(rp)); | 2903 | MGMT_STATUS_BUSY, &rp, sizeof(rp)); |
2900 | goto failed; | 2904 | goto failed; |
2901 | } | 2905 | } |
2902 | 2906 | ||
@@ -2907,8 +2911,9 @@ static int disconnect(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2907 | conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr); | 2911 | conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr); |
2908 | 2912 | ||
2909 | if (!conn || conn->state == BT_OPEN || conn->state == BT_CLOSED) { | 2913 | if (!conn || conn->state == BT_OPEN || conn->state == BT_CLOSED) { |
2910 | err = cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, | 2914 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_DISCONNECT, |
2911 | MGMT_STATUS_NOT_CONNECTED, &rp, sizeof(rp)); | 2915 | MGMT_STATUS_NOT_CONNECTED, &rp, |
2916 | sizeof(rp)); | ||
2912 | goto failed; | 2917 | goto failed; |
2913 | } | 2918 | } |
2914 | 2919 | ||
@@ -2996,8 +3001,8 @@ static int get_connections(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2996 | /* Recalculate length in case of filtered SCO connections, etc */ | 3001 | /* Recalculate length in case of filtered SCO connections, etc */ |
2997 | rp_len = sizeof(*rp) + (i * sizeof(struct mgmt_addr_info)); | 3002 | rp_len = sizeof(*rp) + (i * sizeof(struct mgmt_addr_info)); |
2998 | 3003 | ||
2999 | err = cmd_complete(sk, hdev->id, MGMT_OP_GET_CONNECTIONS, 0, rp, | 3004 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONNECTIONS, 0, rp, |
3000 | rp_len); | 3005 | rp_len); |
3001 | 3006 | ||
3002 | kfree(rp); | 3007 | kfree(rp); |
3003 | 3008 | ||
@@ -3095,8 +3100,8 @@ static int set_io_capability(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3095 | BT_DBG(""); | 3100 | BT_DBG(""); |
3096 | 3101 | ||
3097 | if (cp->io_capability > SMP_IO_KEYBOARD_DISPLAY) | 3102 | if (cp->io_capability > SMP_IO_KEYBOARD_DISPLAY) |
3098 | return cmd_complete(sk, hdev->id, MGMT_OP_SET_IO_CAPABILITY, | 3103 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_IO_CAPABILITY, |
3099 | MGMT_STATUS_INVALID_PARAMS, NULL, 0); | 3104 | MGMT_STATUS_INVALID_PARAMS, NULL, 0); |
3100 | 3105 | ||
3101 | hci_dev_lock(hdev); | 3106 | hci_dev_lock(hdev); |
3102 | 3107 | ||
@@ -3107,8 +3112,8 @@ static int set_io_capability(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3107 | 3112 | ||
3108 | hci_dev_unlock(hdev); | 3113 | hci_dev_unlock(hdev); |
3109 | 3114 | ||
3110 | return cmd_complete(sk, hdev->id, MGMT_OP_SET_IO_CAPABILITY, 0, NULL, | 3115 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_IO_CAPABILITY, 0, |
3111 | 0); | 3116 | NULL, 0); |
3112 | } | 3117 | } |
3113 | 3118 | ||
3114 | static struct pending_cmd *find_pairing(struct hci_conn *conn) | 3119 | static struct pending_cmd *find_pairing(struct hci_conn *conn) |
@@ -3138,8 +3143,8 @@ static int pairing_complete(struct pending_cmd *cmd, u8 status) | |||
3138 | bacpy(&rp.addr.bdaddr, &conn->dst); | 3143 | bacpy(&rp.addr.bdaddr, &conn->dst); |
3139 | rp.addr.type = link_to_bdaddr(conn->type, conn->dst_type); | 3144 | rp.addr.type = link_to_bdaddr(conn->type, conn->dst_type); |
3140 | 3145 | ||
3141 | err = cmd_complete(cmd->sk, cmd->index, MGMT_OP_PAIR_DEVICE, status, | 3146 | err = mgmt_cmd_complete(cmd->sk, cmd->index, MGMT_OP_PAIR_DEVICE, |
3142 | &rp, sizeof(rp)); | 3147 | status, &rp, sizeof(rp)); |
3143 | 3148 | ||
3144 | /* So we don't get further callbacks for this connection */ | 3149 | /* So we don't get further callbacks for this connection */ |
3145 | conn->connect_cfm_cb = NULL; | 3150 | conn->connect_cfm_cb = NULL; |
@@ -3222,20 +3227,21 @@ static int pair_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3222 | rp.addr.type = cp->addr.type; | 3227 | rp.addr.type = cp->addr.type; |
3223 | 3228 | ||
3224 | if (!bdaddr_type_is_valid(cp->addr.type)) | 3229 | if (!bdaddr_type_is_valid(cp->addr.type)) |
3225 | return cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, | 3230 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, |
3226 | MGMT_STATUS_INVALID_PARAMS, | 3231 | MGMT_STATUS_INVALID_PARAMS, |
3227 | &rp, sizeof(rp)); | 3232 | &rp, sizeof(rp)); |
3228 | 3233 | ||
3229 | if (cp->io_cap > SMP_IO_KEYBOARD_DISPLAY) | 3234 | if (cp->io_cap > SMP_IO_KEYBOARD_DISPLAY) |
3230 | return cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, | 3235 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, |
3231 | MGMT_STATUS_INVALID_PARAMS, | 3236 | MGMT_STATUS_INVALID_PARAMS, |
3232 | &rp, sizeof(rp)); | 3237 | &rp, sizeof(rp)); |
3233 | 3238 | ||
3234 | hci_dev_lock(hdev); | 3239 | hci_dev_lock(hdev); |
3235 | 3240 | ||
3236 | if (!hdev_is_powered(hdev)) { | 3241 | if (!hdev_is_powered(hdev)) { |
3237 | err = cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, | 3242 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, |
3238 | MGMT_STATUS_NOT_POWERED, &rp, sizeof(rp)); | 3243 | MGMT_STATUS_NOT_POWERED, &rp, |
3244 | sizeof(rp)); | ||
3239 | goto unlock; | 3245 | goto unlock; |
3240 | } | 3246 | } |
3241 | 3247 | ||
@@ -3283,16 +3289,15 @@ static int pair_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3283 | else | 3289 | else |
3284 | status = MGMT_STATUS_CONNECT_FAILED; | 3290 | status = MGMT_STATUS_CONNECT_FAILED; |
3285 | 3291 | ||
3286 | err = cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, | 3292 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, |
3287 | status, &rp, | 3293 | status, &rp, sizeof(rp)); |
3288 | sizeof(rp)); | ||
3289 | goto unlock; | 3294 | goto unlock; |
3290 | } | 3295 | } |
3291 | 3296 | ||
3292 | if (conn->connect_cfm_cb) { | 3297 | if (conn->connect_cfm_cb) { |
3293 | hci_conn_drop(conn); | 3298 | hci_conn_drop(conn); |
3294 | err = cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, | 3299 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE, |
3295 | MGMT_STATUS_BUSY, &rp, sizeof(rp)); | 3300 | MGMT_STATUS_BUSY, &rp, sizeof(rp)); |
3296 | goto unlock; | 3301 | goto unlock; |
3297 | } | 3302 | } |
3298 | 3303 | ||
@@ -3368,8 +3373,8 @@ static int cancel_pair_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3368 | cmd->cmd_complete(cmd, MGMT_STATUS_CANCELLED); | 3373 | cmd->cmd_complete(cmd, MGMT_STATUS_CANCELLED); |
3369 | mgmt_pending_remove(cmd); | 3374 | mgmt_pending_remove(cmd); |
3370 | 3375 | ||
3371 | err = cmd_complete(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, 0, | 3376 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, 0, |
3372 | addr, sizeof(*addr)); | 3377 | addr, sizeof(*addr)); |
3373 | unlock: | 3378 | unlock: |
3374 | hci_dev_unlock(hdev); | 3379 | hci_dev_unlock(hdev); |
3375 | return err; | 3380 | return err; |
@@ -3386,9 +3391,9 @@ static int user_pairing_resp(struct sock *sk, struct hci_dev *hdev, | |||
3386 | hci_dev_lock(hdev); | 3391 | hci_dev_lock(hdev); |
3387 | 3392 | ||
3388 | if (!hdev_is_powered(hdev)) { | 3393 | if (!hdev_is_powered(hdev)) { |
3389 | err = cmd_complete(sk, hdev->id, mgmt_op, | 3394 | err = mgmt_cmd_complete(sk, hdev->id, mgmt_op, |
3390 | MGMT_STATUS_NOT_POWERED, addr, | 3395 | MGMT_STATUS_NOT_POWERED, addr, |
3391 | sizeof(*addr)); | 3396 | sizeof(*addr)); |
3392 | goto done; | 3397 | goto done; |
3393 | } | 3398 | } |
3394 | 3399 | ||
@@ -3398,22 +3403,22 @@ static int user_pairing_resp(struct sock *sk, struct hci_dev *hdev, | |||
3398 | conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &addr->bdaddr); | 3403 | conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &addr->bdaddr); |
3399 | 3404 | ||
3400 | if (!conn) { | 3405 | if (!conn) { |
3401 | err = cmd_complete(sk, hdev->id, mgmt_op, | 3406 | err = mgmt_cmd_complete(sk, hdev->id, mgmt_op, |
3402 | MGMT_STATUS_NOT_CONNECTED, addr, | 3407 | MGMT_STATUS_NOT_CONNECTED, addr, |
3403 | sizeof(*addr)); | 3408 | sizeof(*addr)); |
3404 | goto done; | 3409 | goto done; |
3405 | } | 3410 | } |
3406 | 3411 | ||
3407 | if (addr->type == BDADDR_LE_PUBLIC || addr->type == BDADDR_LE_RANDOM) { | 3412 | if (addr->type == BDADDR_LE_PUBLIC || addr->type == BDADDR_LE_RANDOM) { |
3408 | err = smp_user_confirm_reply(conn, mgmt_op, passkey); | 3413 | err = smp_user_confirm_reply(conn, mgmt_op, passkey); |
3409 | if (!err) | 3414 | if (!err) |
3410 | err = cmd_complete(sk, hdev->id, mgmt_op, | 3415 | err = mgmt_cmd_complete(sk, hdev->id, mgmt_op, |
3411 | MGMT_STATUS_SUCCESS, addr, | 3416 | MGMT_STATUS_SUCCESS, addr, |
3412 | sizeof(*addr)); | 3417 | sizeof(*addr)); |
3413 | else | 3418 | else |
3414 | err = cmd_complete(sk, hdev->id, mgmt_op, | 3419 | err = mgmt_cmd_complete(sk, hdev->id, mgmt_op, |
3415 | MGMT_STATUS_FAILED, addr, | 3420 | MGMT_STATUS_FAILED, addr, |
3416 | sizeof(*addr)); | 3421 | sizeof(*addr)); |
3417 | 3422 | ||
3418 | goto done; | 3423 | goto done; |
3419 | } | 3424 | } |
@@ -3538,8 +3543,8 @@ static void set_name_complete(struct hci_dev *hdev, u8 status, u16 opcode) | |||
3538 | mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, | 3543 | mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, |
3539 | mgmt_status(status)); | 3544 | mgmt_status(status)); |
3540 | else | 3545 | else |
3541 | cmd_complete(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, | 3546 | mgmt_cmd_complete(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, |
3542 | cp, sizeof(*cp)); | 3547 | cp, sizeof(*cp)); |
3543 | 3548 | ||
3544 | mgmt_pending_remove(cmd); | 3549 | mgmt_pending_remove(cmd); |
3545 | 3550 | ||
@@ -3565,8 +3570,8 @@ static int set_local_name(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3565 | if (!memcmp(hdev->dev_name, cp->name, sizeof(hdev->dev_name)) && | 3570 | if (!memcmp(hdev->dev_name, cp->name, sizeof(hdev->dev_name)) && |
3566 | !memcmp(hdev->short_name, cp->short_name, | 3571 | !memcmp(hdev->short_name, cp->short_name, |
3567 | sizeof(hdev->short_name))) { | 3572 | sizeof(hdev->short_name))) { |
3568 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, | 3573 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, |
3569 | data, len); | 3574 | data, len); |
3570 | goto failed; | 3575 | goto failed; |
3571 | } | 3576 | } |
3572 | 3577 | ||
@@ -3575,8 +3580,8 @@ static int set_local_name(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3575 | if (!hdev_is_powered(hdev)) { | 3580 | if (!hdev_is_powered(hdev)) { |
3576 | memcpy(hdev->dev_name, cp->name, sizeof(hdev->dev_name)); | 3581 | memcpy(hdev->dev_name, cp->name, sizeof(hdev->dev_name)); |
3577 | 3582 | ||
3578 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, | 3583 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, |
3579 | data, len); | 3584 | data, len); |
3580 | if (err < 0) | 3585 | if (err < 0) |
3581 | goto failed; | 3586 | goto failed; |
3582 | 3587 | ||
@@ -3673,9 +3678,10 @@ static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3673 | BT_DBG("%s ", hdev->name); | 3678 | BT_DBG("%s ", hdev->name); |
3674 | 3679 | ||
3675 | if (!bdaddr_type_is_valid(addr->type)) | 3680 | if (!bdaddr_type_is_valid(addr->type)) |
3676 | return cmd_complete(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA, | 3681 | return mgmt_cmd_complete(sk, hdev->id, |
3677 | MGMT_STATUS_INVALID_PARAMS, addr, | 3682 | MGMT_OP_ADD_REMOTE_OOB_DATA, |
3678 | sizeof(*addr)); | 3683 | MGMT_STATUS_INVALID_PARAMS, |
3684 | addr, sizeof(*addr)); | ||
3679 | 3685 | ||
3680 | hci_dev_lock(hdev); | 3686 | hci_dev_lock(hdev); |
3681 | 3687 | ||
@@ -3684,10 +3690,10 @@ static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3684 | u8 status; | 3690 | u8 status; |
3685 | 3691 | ||
3686 | if (cp->addr.type != BDADDR_BREDR) { | 3692 | if (cp->addr.type != BDADDR_BREDR) { |
3687 | err = cmd_complete(sk, hdev->id, | 3693 | err = mgmt_cmd_complete(sk, hdev->id, |
3688 | MGMT_OP_ADD_REMOTE_OOB_DATA, | 3694 | MGMT_OP_ADD_REMOTE_OOB_DATA, |
3689 | MGMT_STATUS_INVALID_PARAMS, | 3695 | MGMT_STATUS_INVALID_PARAMS, |
3690 | &cp->addr, sizeof(cp->addr)); | 3696 | &cp->addr, sizeof(cp->addr)); |
3691 | goto unlock; | 3697 | goto unlock; |
3692 | } | 3698 | } |
3693 | 3699 | ||
@@ -3699,8 +3705,9 @@ static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3699 | else | 3705 | else |
3700 | status = MGMT_STATUS_SUCCESS; | 3706 | status = MGMT_STATUS_SUCCESS; |
3701 | 3707 | ||
3702 | err = cmd_complete(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA, | 3708 | err = mgmt_cmd_complete(sk, hdev->id, |
3703 | status, &cp->addr, sizeof(cp->addr)); | 3709 | MGMT_OP_ADD_REMOTE_OOB_DATA, status, |
3710 | &cp->addr, sizeof(cp->addr)); | ||
3704 | } else if (len == MGMT_ADD_REMOTE_OOB_EXT_DATA_SIZE) { | 3711 | } else if (len == MGMT_ADD_REMOTE_OOB_EXT_DATA_SIZE) { |
3705 | struct mgmt_cp_add_remote_oob_ext_data *cp = data; | 3712 | struct mgmt_cp_add_remote_oob_ext_data *cp = data; |
3706 | u8 *rand192, *hash192, *rand256, *hash256; | 3713 | u8 *rand192, *hash192, *rand256, *hash256; |
@@ -3712,10 +3719,10 @@ static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3712 | */ | 3719 | */ |
3713 | if (memcmp(cp->rand192, ZERO_KEY, 16) || | 3720 | if (memcmp(cp->rand192, ZERO_KEY, 16) || |
3714 | memcmp(cp->hash192, ZERO_KEY, 16)) { | 3721 | memcmp(cp->hash192, ZERO_KEY, 16)) { |
3715 | err = cmd_complete(sk, hdev->id, | 3722 | err = mgmt_cmd_complete(sk, hdev->id, |
3716 | MGMT_OP_ADD_REMOTE_OOB_DATA, | 3723 | MGMT_OP_ADD_REMOTE_OOB_DATA, |
3717 | MGMT_STATUS_INVALID_PARAMS, | 3724 | MGMT_STATUS_INVALID_PARAMS, |
3718 | addr, sizeof(*addr)); | 3725 | addr, sizeof(*addr)); |
3719 | goto unlock; | 3726 | goto unlock; |
3720 | } | 3727 | } |
3721 | 3728 | ||
@@ -3755,8 +3762,9 @@ static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3755 | else | 3762 | else |
3756 | status = MGMT_STATUS_SUCCESS; | 3763 | status = MGMT_STATUS_SUCCESS; |
3757 | 3764 | ||
3758 | err = cmd_complete(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA, | 3765 | err = mgmt_cmd_complete(sk, hdev->id, |
3759 | status, &cp->addr, sizeof(cp->addr)); | 3766 | MGMT_OP_ADD_REMOTE_OOB_DATA, |
3767 | status, &cp->addr, sizeof(cp->addr)); | ||
3760 | } else { | 3768 | } else { |
3761 | BT_ERR("add_remote_oob_data: invalid length of %u bytes", len); | 3769 | BT_ERR("add_remote_oob_data: invalid length of %u bytes", len); |
3762 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA, | 3770 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA, |
@@ -3778,9 +3786,10 @@ static int remove_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3778 | BT_DBG("%s", hdev->name); | 3786 | BT_DBG("%s", hdev->name); |
3779 | 3787 | ||
3780 | if (cp->addr.type != BDADDR_BREDR) | 3788 | if (cp->addr.type != BDADDR_BREDR) |
3781 | return cmd_complete(sk, hdev->id, MGMT_OP_REMOVE_REMOTE_OOB_DATA, | 3789 | return mgmt_cmd_complete(sk, hdev->id, |
3782 | MGMT_STATUS_INVALID_PARAMS, | 3790 | MGMT_OP_REMOVE_REMOTE_OOB_DATA, |
3783 | &cp->addr, sizeof(cp->addr)); | 3791 | MGMT_STATUS_INVALID_PARAMS, |
3792 | &cp->addr, sizeof(cp->addr)); | ||
3784 | 3793 | ||
3785 | hci_dev_lock(hdev); | 3794 | hci_dev_lock(hdev); |
3786 | 3795 | ||
@@ -3797,8 +3806,8 @@ static int remove_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3797 | status = MGMT_STATUS_SUCCESS; | 3806 | status = MGMT_STATUS_SUCCESS; |
3798 | 3807 | ||
3799 | done: | 3808 | done: |
3800 | err = cmd_complete(sk, hdev->id, MGMT_OP_REMOVE_REMOTE_OOB_DATA, | 3809 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_REMOVE_REMOTE_OOB_DATA, |
3801 | status, &cp->addr, sizeof(cp->addr)); | 3810 | status, &cp->addr, sizeof(cp->addr)); |
3802 | 3811 | ||
3803 | hci_dev_unlock(hdev); | 3812 | hci_dev_unlock(hdev); |
3804 | return err; | 3813 | return err; |
@@ -3981,17 +3990,17 @@ static int start_discovery(struct sock *sk, struct hci_dev *hdev, | |||
3981 | hci_dev_lock(hdev); | 3990 | hci_dev_lock(hdev); |
3982 | 3991 | ||
3983 | if (!hdev_is_powered(hdev)) { | 3992 | if (!hdev_is_powered(hdev)) { |
3984 | err = cmd_complete(sk, hdev->id, MGMT_OP_START_DISCOVERY, | 3993 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_START_DISCOVERY, |
3985 | MGMT_STATUS_NOT_POWERED, | 3994 | MGMT_STATUS_NOT_POWERED, |
3986 | &cp->type, sizeof(cp->type)); | 3995 | &cp->type, sizeof(cp->type)); |
3987 | goto failed; | 3996 | goto failed; |
3988 | } | 3997 | } |
3989 | 3998 | ||
3990 | if (hdev->discovery.state != DISCOVERY_STOPPED || | 3999 | if (hdev->discovery.state != DISCOVERY_STOPPED || |
3991 | test_bit(HCI_PERIODIC_INQ, &hdev->dev_flags)) { | 4000 | test_bit(HCI_PERIODIC_INQ, &hdev->dev_flags)) { |
3992 | err = cmd_complete(sk, hdev->id, MGMT_OP_START_DISCOVERY, | 4001 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_START_DISCOVERY, |
3993 | MGMT_STATUS_BUSY, &cp->type, | 4002 | MGMT_STATUS_BUSY, &cp->type, |
3994 | sizeof(cp->type)); | 4003 | sizeof(cp->type)); |
3995 | goto failed; | 4004 | goto failed; |
3996 | } | 4005 | } |
3997 | 4006 | ||
@@ -4014,8 +4023,8 @@ static int start_discovery(struct sock *sk, struct hci_dev *hdev, | |||
4014 | hci_req_init(&req, hdev); | 4023 | hci_req_init(&req, hdev); |
4015 | 4024 | ||
4016 | if (!trigger_discovery(&req, &status)) { | 4025 | if (!trigger_discovery(&req, &status)) { |
4017 | err = cmd_complete(sk, hdev->id, MGMT_OP_START_DISCOVERY, | 4026 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_START_DISCOVERY, |
4018 | status, &cp->type, sizeof(cp->type)); | 4027 | status, &cp->type, sizeof(cp->type)); |
4019 | mgmt_pending_remove(cmd); | 4028 | mgmt_pending_remove(cmd); |
4020 | goto failed; | 4029 | goto failed; |
4021 | } | 4030 | } |
@@ -4035,8 +4044,8 @@ failed: | |||
4035 | 4044 | ||
4036 | static int service_discovery_cmd_complete(struct pending_cmd *cmd, u8 status) | 4045 | static int service_discovery_cmd_complete(struct pending_cmd *cmd, u8 status) |
4037 | { | 4046 | { |
4038 | return cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, | 4047 | return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, |
4039 | cmd->param, 1); | 4048 | cmd->param, 1); |
4040 | } | 4049 | } |
4041 | 4050 | ||
4042 | static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, | 4051 | static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, |
@@ -4055,19 +4064,19 @@ static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, | |||
4055 | hci_dev_lock(hdev); | 4064 | hci_dev_lock(hdev); |
4056 | 4065 | ||
4057 | if (!hdev_is_powered(hdev)) { | 4066 | if (!hdev_is_powered(hdev)) { |
4058 | err = cmd_complete(sk, hdev->id, | 4067 | err = mgmt_cmd_complete(sk, hdev->id, |
4059 | MGMT_OP_START_SERVICE_DISCOVERY, | 4068 | MGMT_OP_START_SERVICE_DISCOVERY, |
4060 | MGMT_STATUS_NOT_POWERED, | 4069 | MGMT_STATUS_NOT_POWERED, |
4061 | &cp->type, sizeof(cp->type)); | 4070 | &cp->type, sizeof(cp->type)); |
4062 | goto failed; | 4071 | goto failed; |
4063 | } | 4072 | } |
4064 | 4073 | ||
4065 | if (hdev->discovery.state != DISCOVERY_STOPPED || | 4074 | if (hdev->discovery.state != DISCOVERY_STOPPED || |
4066 | test_bit(HCI_PERIODIC_INQ, &hdev->dev_flags)) { | 4075 | test_bit(HCI_PERIODIC_INQ, &hdev->dev_flags)) { |
4067 | err = cmd_complete(sk, hdev->id, | 4076 | err = mgmt_cmd_complete(sk, hdev->id, |
4068 | MGMT_OP_START_SERVICE_DISCOVERY, | 4077 | MGMT_OP_START_SERVICE_DISCOVERY, |
4069 | MGMT_STATUS_BUSY, &cp->type, | 4078 | MGMT_STATUS_BUSY, &cp->type, |
4070 | sizeof(cp->type)); | 4079 | sizeof(cp->type)); |
4071 | goto failed; | 4080 | goto failed; |
4072 | } | 4081 | } |
4073 | 4082 | ||
@@ -4075,10 +4084,10 @@ static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, | |||
4075 | if (uuid_count > max_uuid_count) { | 4084 | if (uuid_count > max_uuid_count) { |
4076 | BT_ERR("service_discovery: too big uuid_count value %u", | 4085 | BT_ERR("service_discovery: too big uuid_count value %u", |
4077 | uuid_count); | 4086 | uuid_count); |
4078 | err = cmd_complete(sk, hdev->id, | 4087 | err = mgmt_cmd_complete(sk, hdev->id, |
4079 | MGMT_OP_START_SERVICE_DISCOVERY, | 4088 | MGMT_OP_START_SERVICE_DISCOVERY, |
4080 | MGMT_STATUS_INVALID_PARAMS, &cp->type, | 4089 | MGMT_STATUS_INVALID_PARAMS, &cp->type, |
4081 | sizeof(cp->type)); | 4090 | sizeof(cp->type)); |
4082 | goto failed; | 4091 | goto failed; |
4083 | } | 4092 | } |
4084 | 4093 | ||
@@ -4086,10 +4095,10 @@ static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, | |||
4086 | if (expected_len != len) { | 4095 | if (expected_len != len) { |
4087 | BT_ERR("service_discovery: expected %u bytes, got %u bytes", | 4096 | BT_ERR("service_discovery: expected %u bytes, got %u bytes", |
4088 | expected_len, len); | 4097 | expected_len, len); |
4089 | err = cmd_complete(sk, hdev->id, | 4098 | err = mgmt_cmd_complete(sk, hdev->id, |
4090 | MGMT_OP_START_SERVICE_DISCOVERY, | 4099 | MGMT_OP_START_SERVICE_DISCOVERY, |
4091 | MGMT_STATUS_INVALID_PARAMS, &cp->type, | 4100 | MGMT_STATUS_INVALID_PARAMS, &cp->type, |
4092 | sizeof(cp->type)); | 4101 | sizeof(cp->type)); |
4093 | goto failed; | 4102 | goto failed; |
4094 | } | 4103 | } |
4095 | 4104 | ||
@@ -4116,10 +4125,10 @@ static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, | |||
4116 | hdev->discovery.uuids = kmemdup(cp->uuids, uuid_count * 16, | 4125 | hdev->discovery.uuids = kmemdup(cp->uuids, uuid_count * 16, |
4117 | GFP_KERNEL); | 4126 | GFP_KERNEL); |
4118 | if (!hdev->discovery.uuids) { | 4127 | if (!hdev->discovery.uuids) { |
4119 | err = cmd_complete(sk, hdev->id, | 4128 | err = mgmt_cmd_complete(sk, hdev->id, |
4120 | MGMT_OP_START_SERVICE_DISCOVERY, | 4129 | MGMT_OP_START_SERVICE_DISCOVERY, |
4121 | MGMT_STATUS_FAILED, | 4130 | MGMT_STATUS_FAILED, |
4122 | &cp->type, sizeof(cp->type)); | 4131 | &cp->type, sizeof(cp->type)); |
4123 | mgmt_pending_remove(cmd); | 4132 | mgmt_pending_remove(cmd); |
4124 | goto failed; | 4133 | goto failed; |
4125 | } | 4134 | } |
@@ -4128,9 +4137,9 @@ static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, | |||
4128 | hci_req_init(&req, hdev); | 4137 | hci_req_init(&req, hdev); |
4129 | 4138 | ||
4130 | if (!trigger_discovery(&req, &status)) { | 4139 | if (!trigger_discovery(&req, &status)) { |
4131 | err = cmd_complete(sk, hdev->id, | 4140 | err = mgmt_cmd_complete(sk, hdev->id, |
4132 | MGMT_OP_START_SERVICE_DISCOVERY, | 4141 | MGMT_OP_START_SERVICE_DISCOVERY, |
4133 | status, &cp->type, sizeof(cp->type)); | 4142 | status, &cp->type, sizeof(cp->type)); |
4134 | mgmt_pending_remove(cmd); | 4143 | mgmt_pending_remove(cmd); |
4135 | goto failed; | 4144 | goto failed; |
4136 | } | 4145 | } |
@@ -4181,16 +4190,16 @@ static int stop_discovery(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4181 | hci_dev_lock(hdev); | 4190 | hci_dev_lock(hdev); |
4182 | 4191 | ||
4183 | if (!hci_discovery_active(hdev)) { | 4192 | if (!hci_discovery_active(hdev)) { |
4184 | err = cmd_complete(sk, hdev->id, MGMT_OP_STOP_DISCOVERY, | 4193 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_STOP_DISCOVERY, |
4185 | MGMT_STATUS_REJECTED, &mgmt_cp->type, | 4194 | MGMT_STATUS_REJECTED, &mgmt_cp->type, |
4186 | sizeof(mgmt_cp->type)); | 4195 | sizeof(mgmt_cp->type)); |
4187 | goto unlock; | 4196 | goto unlock; |
4188 | } | 4197 | } |
4189 | 4198 | ||
4190 | if (hdev->discovery.type != mgmt_cp->type) { | 4199 | if (hdev->discovery.type != mgmt_cp->type) { |
4191 | err = cmd_complete(sk, hdev->id, MGMT_OP_STOP_DISCOVERY, | 4200 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_STOP_DISCOVERY, |
4192 | MGMT_STATUS_INVALID_PARAMS, &mgmt_cp->type, | 4201 | MGMT_STATUS_INVALID_PARAMS, |
4193 | sizeof(mgmt_cp->type)); | 4202 | &mgmt_cp->type, sizeof(mgmt_cp->type)); |
4194 | goto unlock; | 4203 | goto unlock; |
4195 | } | 4204 | } |
4196 | 4205 | ||
@@ -4216,8 +4225,8 @@ static int stop_discovery(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4216 | 4225 | ||
4217 | /* If no HCI commands were sent we're done */ | 4226 | /* If no HCI commands were sent we're done */ |
4218 | if (err == -ENODATA) { | 4227 | if (err == -ENODATA) { |
4219 | err = cmd_complete(sk, hdev->id, MGMT_OP_STOP_DISCOVERY, 0, | 4228 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_STOP_DISCOVERY, 0, |
4220 | &mgmt_cp->type, sizeof(mgmt_cp->type)); | 4229 | &mgmt_cp->type, sizeof(mgmt_cp->type)); |
4221 | hci_discovery_set_state(hdev, DISCOVERY_STOPPED); | 4230 | hci_discovery_set_state(hdev, DISCOVERY_STOPPED); |
4222 | } | 4231 | } |
4223 | 4232 | ||
@@ -4238,17 +4247,17 @@ static int confirm_name(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4238 | hci_dev_lock(hdev); | 4247 | hci_dev_lock(hdev); |
4239 | 4248 | ||
4240 | if (!hci_discovery_active(hdev)) { | 4249 | if (!hci_discovery_active(hdev)) { |
4241 | err = cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME, | 4250 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME, |
4242 | MGMT_STATUS_FAILED, &cp->addr, | 4251 | MGMT_STATUS_FAILED, &cp->addr, |
4243 | sizeof(cp->addr)); | 4252 | sizeof(cp->addr)); |
4244 | goto failed; | 4253 | goto failed; |
4245 | } | 4254 | } |
4246 | 4255 | ||
4247 | e = hci_inquiry_cache_lookup_unknown(hdev, &cp->addr.bdaddr); | 4256 | e = hci_inquiry_cache_lookup_unknown(hdev, &cp->addr.bdaddr); |
4248 | if (!e) { | 4257 | if (!e) { |
4249 | err = cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME, | 4258 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME, |
4250 | MGMT_STATUS_INVALID_PARAMS, &cp->addr, | 4259 | MGMT_STATUS_INVALID_PARAMS, &cp->addr, |
4251 | sizeof(cp->addr)); | 4260 | sizeof(cp->addr)); |
4252 | goto failed; | 4261 | goto failed; |
4253 | } | 4262 | } |
4254 | 4263 | ||
@@ -4260,8 +4269,8 @@ static int confirm_name(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4260 | hci_inquiry_cache_update_resolve(hdev, e); | 4269 | hci_inquiry_cache_update_resolve(hdev, e); |
4261 | } | 4270 | } |
4262 | 4271 | ||
4263 | err = cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME, 0, &cp->addr, | 4272 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME, 0, |
4264 | sizeof(cp->addr)); | 4273 | &cp->addr, sizeof(cp->addr)); |
4265 | 4274 | ||
4266 | failed: | 4275 | failed: |
4267 | hci_dev_unlock(hdev); | 4276 | hci_dev_unlock(hdev); |
@@ -4278,9 +4287,9 @@ static int block_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4278 | BT_DBG("%s", hdev->name); | 4287 | BT_DBG("%s", hdev->name); |
4279 | 4288 | ||
4280 | if (!bdaddr_type_is_valid(cp->addr.type)) | 4289 | if (!bdaddr_type_is_valid(cp->addr.type)) |
4281 | return cmd_complete(sk, hdev->id, MGMT_OP_BLOCK_DEVICE, | 4290 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_BLOCK_DEVICE, |
4282 | MGMT_STATUS_INVALID_PARAMS, | 4291 | MGMT_STATUS_INVALID_PARAMS, |
4283 | &cp->addr, sizeof(cp->addr)); | 4292 | &cp->addr, sizeof(cp->addr)); |
4284 | 4293 | ||
4285 | hci_dev_lock(hdev); | 4294 | hci_dev_lock(hdev); |
4286 | 4295 | ||
@@ -4296,8 +4305,8 @@ static int block_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4296 | status = MGMT_STATUS_SUCCESS; | 4305 | status = MGMT_STATUS_SUCCESS; |
4297 | 4306 | ||
4298 | done: | 4307 | done: |
4299 | err = cmd_complete(sk, hdev->id, MGMT_OP_BLOCK_DEVICE, status, | 4308 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_BLOCK_DEVICE, status, |
4300 | &cp->addr, sizeof(cp->addr)); | 4309 | &cp->addr, sizeof(cp->addr)); |
4301 | 4310 | ||
4302 | hci_dev_unlock(hdev); | 4311 | hci_dev_unlock(hdev); |
4303 | 4312 | ||
@@ -4314,9 +4323,9 @@ static int unblock_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4314 | BT_DBG("%s", hdev->name); | 4323 | BT_DBG("%s", hdev->name); |
4315 | 4324 | ||
4316 | if (!bdaddr_type_is_valid(cp->addr.type)) | 4325 | if (!bdaddr_type_is_valid(cp->addr.type)) |
4317 | return cmd_complete(sk, hdev->id, MGMT_OP_UNBLOCK_DEVICE, | 4326 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_UNBLOCK_DEVICE, |
4318 | MGMT_STATUS_INVALID_PARAMS, | 4327 | MGMT_STATUS_INVALID_PARAMS, |
4319 | &cp->addr, sizeof(cp->addr)); | 4328 | &cp->addr, sizeof(cp->addr)); |
4320 | 4329 | ||
4321 | hci_dev_lock(hdev); | 4330 | hci_dev_lock(hdev); |
4322 | 4331 | ||
@@ -4332,8 +4341,8 @@ static int unblock_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4332 | status = MGMT_STATUS_SUCCESS; | 4341 | status = MGMT_STATUS_SUCCESS; |
4333 | 4342 | ||
4334 | done: | 4343 | done: |
4335 | err = cmd_complete(sk, hdev->id, MGMT_OP_UNBLOCK_DEVICE, status, | 4344 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_UNBLOCK_DEVICE, status, |
4336 | &cp->addr, sizeof(cp->addr)); | 4345 | &cp->addr, sizeof(cp->addr)); |
4337 | 4346 | ||
4338 | hci_dev_unlock(hdev); | 4347 | hci_dev_unlock(hdev); |
4339 | 4348 | ||
@@ -4363,7 +4372,8 @@ static int set_device_id(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4363 | hdev->devid_product = __le16_to_cpu(cp->product); | 4372 | hdev->devid_product = __le16_to_cpu(cp->product); |
4364 | hdev->devid_version = __le16_to_cpu(cp->version); | 4373 | hdev->devid_version = __le16_to_cpu(cp->version); |
4365 | 4374 | ||
4366 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_DEVICE_ID, 0, NULL, 0); | 4375 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_DEVICE_ID, 0, |
4376 | NULL, 0); | ||
4367 | 4377 | ||
4368 | hci_req_init(&req, hdev); | 4378 | hci_req_init(&req, hdev); |
4369 | update_eir(&req); | 4379 | update_eir(&req); |
@@ -4564,7 +4574,8 @@ static int set_scan_params(struct sock *sk, struct hci_dev *hdev, | |||
4564 | hdev->le_scan_interval = interval; | 4574 | hdev->le_scan_interval = interval; |
4565 | hdev->le_scan_window = window; | 4575 | hdev->le_scan_window = window; |
4566 | 4576 | ||
4567 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, 0, NULL, 0); | 4577 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, 0, |
4578 | NULL, 0); | ||
4568 | 4579 | ||
4569 | /* If background scan is running, restart it so new parameters are | 4580 | /* If background scan is running, restart it so new parameters are |
4570 | * loaded. | 4581 | * loaded. |
@@ -5136,7 +5147,7 @@ static int load_irks(struct sock *sk, struct hci_dev *hdev, void *cp_data, | |||
5136 | 5147 | ||
5137 | set_bit(HCI_RPA_RESOLVING, &hdev->dev_flags); | 5148 | set_bit(HCI_RPA_RESOLVING, &hdev->dev_flags); |
5138 | 5149 | ||
5139 | err = cmd_complete(sk, hdev->id, MGMT_OP_LOAD_IRKS, 0, NULL, 0); | 5150 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_IRKS, 0, NULL, 0); |
5140 | 5151 | ||
5141 | hci_dev_unlock(hdev); | 5152 | hci_dev_unlock(hdev); |
5142 | 5153 | ||
@@ -5246,7 +5257,7 @@ static int load_long_term_keys(struct sock *sk, struct hci_dev *hdev, | |||
5246 | key->rand); | 5257 | key->rand); |
5247 | } | 5258 | } |
5248 | 5259 | ||
5249 | err = cmd_complete(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, 0, | 5260 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, 0, |
5250 | NULL, 0); | 5261 | NULL, 0); |
5251 | 5262 | ||
5252 | hci_dev_unlock(hdev); | 5263 | hci_dev_unlock(hdev); |
@@ -5272,8 +5283,8 @@ static int conn_info_cmd_complete(struct pending_cmd *cmd, u8 status) | |||
5272 | rp.max_tx_power = HCI_TX_POWER_INVALID; | 5283 | rp.max_tx_power = HCI_TX_POWER_INVALID; |
5273 | } | 5284 | } |
5274 | 5285 | ||
5275 | err = cmd_complete(cmd->sk, cmd->index, MGMT_OP_GET_CONN_INFO, status, | 5286 | err = mgmt_cmd_complete(cmd->sk, cmd->index, MGMT_OP_GET_CONN_INFO, |
5276 | &rp, sizeof(rp)); | 5287 | status, &rp, sizeof(rp)); |
5277 | 5288 | ||
5278 | hci_conn_drop(conn); | 5289 | hci_conn_drop(conn); |
5279 | hci_conn_put(conn); | 5290 | hci_conn_put(conn); |
@@ -5350,15 +5361,16 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data, | |||
5350 | rp.addr.type = cp->addr.type; | 5361 | rp.addr.type = cp->addr.type; |
5351 | 5362 | ||
5352 | if (!bdaddr_type_is_valid(cp->addr.type)) | 5363 | if (!bdaddr_type_is_valid(cp->addr.type)) |
5353 | return cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, | 5364 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, |
5354 | MGMT_STATUS_INVALID_PARAMS, | 5365 | MGMT_STATUS_INVALID_PARAMS, |
5355 | &rp, sizeof(rp)); | 5366 | &rp, sizeof(rp)); |
5356 | 5367 | ||
5357 | hci_dev_lock(hdev); | 5368 | hci_dev_lock(hdev); |
5358 | 5369 | ||
5359 | if (!hdev_is_powered(hdev)) { | 5370 | if (!hdev_is_powered(hdev)) { |
5360 | err = cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, | 5371 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, |
5361 | MGMT_STATUS_NOT_POWERED, &rp, sizeof(rp)); | 5372 | MGMT_STATUS_NOT_POWERED, &rp, |
5373 | sizeof(rp)); | ||
5362 | goto unlock; | 5374 | goto unlock; |
5363 | } | 5375 | } |
5364 | 5376 | ||
@@ -5369,14 +5381,15 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data, | |||
5369 | conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr); | 5381 | conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr); |
5370 | 5382 | ||
5371 | if (!conn || conn->state != BT_CONNECTED) { | 5383 | if (!conn || conn->state != BT_CONNECTED) { |
5372 | err = cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, | 5384 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, |
5373 | MGMT_STATUS_NOT_CONNECTED, &rp, sizeof(rp)); | 5385 | MGMT_STATUS_NOT_CONNECTED, &rp, |
5386 | sizeof(rp)); | ||
5374 | goto unlock; | 5387 | goto unlock; |
5375 | } | 5388 | } |
5376 | 5389 | ||
5377 | if (mgmt_pending_find_data(MGMT_OP_GET_CONN_INFO, hdev, conn)) { | 5390 | if (mgmt_pending_find_data(MGMT_OP_GET_CONN_INFO, hdev, conn)) { |
5378 | err = cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, | 5391 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, |
5379 | MGMT_STATUS_BUSY, &rp, sizeof(rp)); | 5392 | MGMT_STATUS_BUSY, &rp, sizeof(rp)); |
5380 | goto unlock; | 5393 | goto unlock; |
5381 | } | 5394 | } |
5382 | 5395 | ||
@@ -5444,8 +5457,8 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data, | |||
5444 | rp.tx_power = conn->tx_power; | 5457 | rp.tx_power = conn->tx_power; |
5445 | rp.max_tx_power = conn->max_tx_power; | 5458 | rp.max_tx_power = conn->max_tx_power; |
5446 | 5459 | ||
5447 | err = cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, | 5460 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, |
5448 | MGMT_STATUS_SUCCESS, &rp, sizeof(rp)); | 5461 | MGMT_STATUS_SUCCESS, &rp, sizeof(rp)); |
5449 | } | 5462 | } |
5450 | 5463 | ||
5451 | unlock: | 5464 | unlock: |
@@ -5478,8 +5491,8 @@ static int clock_info_cmd_complete(struct pending_cmd *cmd, u8 status) | |||
5478 | } | 5491 | } |
5479 | 5492 | ||
5480 | complete: | 5493 | complete: |
5481 | err = cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, &rp, | 5494 | err = mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, &rp, |
5482 | sizeof(rp)); | 5495 | sizeof(rp)); |
5483 | 5496 | ||
5484 | if (conn) { | 5497 | if (conn) { |
5485 | hci_conn_drop(conn); | 5498 | hci_conn_drop(conn); |
@@ -5539,15 +5552,16 @@ static int get_clock_info(struct sock *sk, struct hci_dev *hdev, void *data, | |||
5539 | rp.addr.type = cp->addr.type; | 5552 | rp.addr.type = cp->addr.type; |
5540 | 5553 | ||
5541 | if (cp->addr.type != BDADDR_BREDR) | 5554 | if (cp->addr.type != BDADDR_BREDR) |
5542 | return cmd_complete(sk, hdev->id, MGMT_OP_GET_CLOCK_INFO, | 5555 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CLOCK_INFO, |
5543 | MGMT_STATUS_INVALID_PARAMS, | 5556 | MGMT_STATUS_INVALID_PARAMS, |
5544 | &rp, sizeof(rp)); | 5557 | &rp, sizeof(rp)); |
5545 | 5558 | ||
5546 | hci_dev_lock(hdev); | 5559 | hci_dev_lock(hdev); |
5547 | 5560 | ||
5548 | if (!hdev_is_powered(hdev)) { | 5561 | if (!hdev_is_powered(hdev)) { |
5549 | err = cmd_complete(sk, hdev->id, MGMT_OP_GET_CLOCK_INFO, | 5562 | err = mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CLOCK_INFO, |
5550 | MGMT_STATUS_NOT_POWERED, &rp, sizeof(rp)); | 5563 | MGMT_STATUS_NOT_POWERED, &rp, |
5564 | sizeof(rp)); | ||
5551 | goto unlock; | 5565 | goto unlock; |
5552 | } | 5566 | } |
5553 | 5567 | ||
@@ -5555,10 +5569,10 @@ static int get_clock_info(struct sock *sk, struct hci_dev *hdev, void *data, | |||
5555 | conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, | 5569 | conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, |
5556 | &cp->addr.bdaddr); | 5570 | &cp->addr.bdaddr); |
5557 | if (!conn || conn->state != BT_CONNECTED) { | 5571 | if (!conn || conn->state != BT_CONNECTED) { |
5558 | err = cmd_complete(sk, hdev->id, | 5572 | err = mgmt_cmd_complete(sk, hdev->id, |
5559 | MGMT_OP_GET_CLOCK_INFO, | 5573 | MGMT_OP_GET_CLOCK_INFO, |
5560 | MGMT_STATUS_NOT_CONNECTED, | 5574 | MGMT_STATUS_NOT_CONNECTED, |
5561 | &rp, sizeof(rp)); | 5575 | &rp, sizeof(rp)); |
5562 | goto unlock; | 5576 | goto unlock; |
5563 | } | 5577 | } |
5564 | } else { | 5578 | } else { |
@@ -5699,14 +5713,14 @@ static int add_device(struct sock *sk, struct hci_dev *hdev, | |||
5699 | 5713 | ||
5700 | if (!bdaddr_type_is_valid(cp->addr.type) || | 5714 | if (!bdaddr_type_is_valid(cp->addr.type) || |
5701 | !bacmp(&cp->addr.bdaddr, BDADDR_ANY)) | 5715 | !bacmp(&cp->addr.bdaddr, BDADDR_ANY)) |
5702 | return cmd_complete(sk, hdev->id, MGMT_OP_ADD_DEVICE, | 5716 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_ADD_DEVICE, |
5703 | MGMT_STATUS_INVALID_PARAMS, | 5717 | MGMT_STATUS_INVALID_PARAMS, |
5704 | &cp->addr, sizeof(cp->addr)); | 5718 | &cp->addr, sizeof(cp->addr)); |
5705 | 5719 | ||
5706 | if (cp->action != 0x00 && cp->action != 0x01 && cp->action != 0x02) | 5720 | if (cp->action != 0x00 && cp->action != 0x01 && cp->action != 0x02) |
5707 | return cmd_complete(sk, hdev->id, MGMT_OP_ADD_DEVICE, | 5721 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_ADD_DEVICE, |
5708 | MGMT_STATUS_INVALID_PARAMS, | 5722 | MGMT_STATUS_INVALID_PARAMS, |
5709 | &cp->addr, sizeof(cp->addr)); | 5723 | &cp->addr, sizeof(cp->addr)); |
5710 | 5724 | ||
5711 | hci_req_init(&req, hdev); | 5725 | hci_req_init(&req, hdev); |
5712 | 5726 | ||
@@ -6018,7 +6032,8 @@ static int load_conn_param(struct sock *sk, struct hci_dev *hdev, void *data, | |||
6018 | 6032 | ||
6019 | hci_dev_unlock(hdev); | 6033 | hci_dev_unlock(hdev); |
6020 | 6034 | ||
6021 | return cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0, NULL, 0); | 6035 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0, |
6036 | NULL, 0); | ||
6022 | } | 6037 | } |
6023 | 6038 | ||
6024 | static int set_external_config(struct sock *sk, struct hci_dev *hdev, | 6039 | static int set_external_config(struct sock *sk, struct hci_dev *hdev, |
@@ -7218,8 +7233,9 @@ void mgmt_read_local_oob_data_complete(struct hci_dev *hdev, u8 *hash192, | |||
7218 | rp_size -= sizeof(rp.hash256) + sizeof(rp.rand256); | 7233 | rp_size -= sizeof(rp.hash256) + sizeof(rp.rand256); |
7219 | } | 7234 | } |
7220 | 7235 | ||
7221 | cmd_complete(cmd->sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, 0, | 7236 | mgmt_cmd_complete(cmd->sk, hdev->id, |
7222 | &rp, rp_size); | 7237 | MGMT_OP_READ_LOCAL_OOB_DATA, 0, |
7238 | &rp, rp_size); | ||
7223 | } | 7239 | } |
7224 | 7240 | ||
7225 | mgmt_pending_remove(cmd); | 7241 | mgmt_pending_remove(cmd); |