Commit 920c8300 authored by Andre Guedes's avatar Andre Guedes Committed by Gustavo Padovan

Bluetooth: Check hci_req_run returning value in __hci_req_sync

Since hci_req_run will be returning more than one error code, we
should check its returning value in __hci_req_sync.
Signed-off-by: default avatarAndre Guedes <andre.guedes@openbossa.org>
Acked-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.co.uk>
parent 382b0c39
...@@ -100,13 +100,16 @@ static int __hci_req_sync(struct hci_dev *hdev, ...@@ -100,13 +100,16 @@ static int __hci_req_sync(struct hci_dev *hdev,
err = hci_req_run(&req, hci_req_sync_complete); err = hci_req_run(&req, hci_req_sync_complete);
if (err < 0) { if (err < 0) {
hdev->req_status = 0; hdev->req_status = 0;
/* req_run will fail if the request did not add any
* commands to the queue, something that can happen when /* ENODATA means the HCI request command queue is empty.
* a request with conditionals doesn't trigger any * This can happen when a request with conditionals doesn't
* commands to be sent. This is normal behavior and * trigger any commands to be sent. This is normal behavior
* should not trigger an error return. * and should not trigger an error return.
*/ */
if (err == -ENODATA)
return 0; return 0;
return err;
} }
add_wait_queue(&hdev->req_wait_q, &wait); add_wait_queue(&hdev->req_wait_q, &wait);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment