Bluetooth: Fix response on confirm_name
authorLukasz Rymanowski <lukasz.rymanowski@tieto.com>
Thu, 27 Feb 2014 15:47:28 +0000 (16:47 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 27 Feb 2014 16:41:09 +0000 (08:41 -0800)
According to mgmt-api.txt, in case of confirm name command,
cmd_complete should be always use as a response. Not command status
as it is now for failures.
Using command complete on failure is actually better as client might
be interested in device address for which confirm name failed.

Signed-off-by: Lukasz Rymanowski <lukasz.rymanowski@tieto.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/mgmt.c

index 4c4912e9a7c4a0c062fd625e501abd657d4ed279..78ac7c8640442a722514522e1230cec480091690 100644 (file)
@@ -3627,15 +3627,17 @@ static int confirm_name(struct sock *sk, struct hci_dev *hdev, void *data,
        hci_dev_lock(hdev);
 
        if (!hci_discovery_active(hdev)) {
-               err = cmd_status(sk, hdev->id, MGMT_OP_CONFIRM_NAME,
-                                MGMT_STATUS_FAILED);
+               err = cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME,
+                                  MGMT_STATUS_FAILED, &cp->addr,
+                                  sizeof(cp->addr));
                goto failed;
        }
 
        e = hci_inquiry_cache_lookup_unknown(hdev, &cp->addr.bdaddr);
        if (!e) {
-               err = cmd_status(sk, hdev->id, MGMT_OP_CONFIRM_NAME,
-                                MGMT_STATUS_INVALID_PARAMS);
+               err = cmd_complete(sk, hdev->id, MGMT_OP_CONFIRM_NAME,
+                                  MGMT_STATUS_INVALID_PARAMS, &cp->addr,
+                                  sizeof(cp->addr));
                goto failed;
        }