aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2012-02-19 05:52:07 -0500
committerJohan Hedberg <johan.hedberg@intel.com>2012-02-19 07:04:41 -0500
commitf808e166e7c529a7e706cda916c8c99589d2d95b (patch)
treec9343dfc95a4b17636216727eb9865cdb8fe59d3
parente211326c0b064e8fe2a8cb51427c3f2044ad84be (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.c15
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,
3325int mgmt_start_discovery_failed(struct hci_dev *hdev, u8 status) 3325int 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