aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2015-03-06 14:08:54 -0500
committerMarcel Holtmann <marcel@holtmann.org>2015-03-06 14:15:21 -0500
commit2a1afb5ac8d580d2013c2ccc548b4f2689c5ad7a (patch)
treefd3797d59b8eaa6d7120663c8a4685e0a775afc2 /net/bluetooth
parenta69e8375a134eb7f42d5de7e14d0816967282757 (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.c442
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
282static int cmd_complete(struct sock *sk, u16 index, u16 cmd, u8 status, 282static 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
330static int read_commands(struct sock *sk, struct hci_dev *hdev, void *data, 330static 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
528static int read_config_info(struct sock *sk, struct hci_dev *hdev, 528static 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
556static u32 get_supported_settings(struct hci_dev *hdev) 556static 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
1213static void mgmt_pending_free(struct pending_cmd *cmd) 1213static 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
1278static void clean_up_hci_complete(struct hci_dev *hdev, u8 status, u16 opcode) 1278static 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
1513static int generic_cmd_complete(struct pending_cmd *cmd, u8 status) 1513static 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
1519static int addr_cmd_complete(struct pending_cmd *cmd, u8 status) 1519static 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
1525static u8 mgmt_bredr_support(struct hci_dev *hdev) 1525static 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
3114static struct pending_cmd *find_pairing(struct hci_conn *conn) 3119static 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));
3373unlock: 3378unlock:
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
3799done: 3808done:
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
4036static int service_discovery_cmd_complete(struct pending_cmd *cmd, u8 status) 4045static 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
4042static int start_service_discovery(struct sock *sk, struct hci_dev *hdev, 4051static 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
4266failed: 4275failed:
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
4298done: 4307done:
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
4334done: 4343done:
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
5451unlock: 5464unlock:
@@ -5478,8 +5491,8 @@ static int clock_info_cmd_complete(struct pending_cmd *cmd, u8 status)
5478 } 5491 }
5479 5492
5480complete: 5493complete:
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
6024static int set_external_config(struct sock *sk, struct hci_dev *hdev, 6039static 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);