diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2012-02-19 05:52:07 -0500 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-02-19 07:04:41 -0500 |
commit | f808e166e7c529a7e706cda916c8c99589d2d95b (patch) | |
tree | c9343dfc95a4b17636216727eb9865cdb8fe59d3 | |
parent | e211326c0b064e8fe2a8cb51427c3f2044ad84be (diff) |
Bluetooth: mgmt: Fix Start Discovery return parameters
The same address type that was passed to the Start Discovery command
should also be returned in the response message.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r-- | net/bluetooth/mgmt.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 79255f536278..258adf444936 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
@@ -3325,6 +3325,7 @@ int mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, | |||
3325 | int mgmt_start_discovery_failed(struct hci_dev *hdev, u8 status) | 3325 | int mgmt_start_discovery_failed(struct hci_dev *hdev, u8 status) |
3326 | { | 3326 | { |
3327 | struct pending_cmd *cmd; | 3327 | struct pending_cmd *cmd; |
3328 | u8 type; | ||
3328 | int err; | 3329 | int err; |
3329 | 3330 | ||
3330 | hci_discovery_set_state(hdev, DISCOVERY_STOPPED); | 3331 | hci_discovery_set_state(hdev, DISCOVERY_STOPPED); |
@@ -3333,7 +3334,10 @@ int mgmt_start_discovery_failed(struct hci_dev *hdev, u8 status) | |||
3333 | if (!cmd) | 3334 | if (!cmd) |
3334 | return -ENOENT; | 3335 | return -ENOENT; |
3335 | 3336 | ||
3336 | err = cmd_status(cmd->sk, hdev->id, cmd->opcode, mgmt_status(status)); | 3337 | type = hdev->discovery.type; |
3338 | |||
3339 | err = cmd_complete(cmd->sk, hdev->id, cmd->opcode, mgmt_status(status), | ||
3340 | &type, sizeof(type)); | ||
3337 | mgmt_pending_remove(cmd); | 3341 | mgmt_pending_remove(cmd); |
3338 | 3342 | ||
3339 | return err; | 3343 | return err; |
@@ -3366,7 +3370,14 @@ int mgmt_discovering(struct hci_dev *hdev, u8 discovering) | |||
3366 | cmd = mgmt_pending_find(MGMT_OP_STOP_DISCOVERY, hdev); | 3370 | cmd = mgmt_pending_find(MGMT_OP_STOP_DISCOVERY, hdev); |
3367 | 3371 | ||
3368 | if (cmd != NULL) { | 3372 | if (cmd != NULL) { |
3369 | cmd_complete(cmd->sk, hdev->id, cmd->opcode, 0, NULL, 0); | 3373 | u8 type = hdev->discovery.type; |
3374 | |||
3375 | if (discovering) | ||
3376 | cmd_complete(cmd->sk, hdev->id, cmd->opcode, 0, | ||
3377 | &type, sizeof(type)); | ||
3378 | else | ||
3379 | cmd_complete(cmd->sk, hdev->id, cmd->opcode, 0, | ||
3380 | NULL, 0); | ||
3370 | mgmt_pending_remove(cmd); | 3381 | mgmt_pending_remove(cmd); |
3371 | } | 3382 | } |
3372 | 3383 | ||