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: Andre Guedes <andre.guedes@openbossa.org> Acked-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
This commit is contained in:
Родитель
382b0c39b3
Коммит
920c8300c6
|
@ -100,13 +100,16 @@ static int __hci_req_sync(struct hci_dev *hdev,
|
|||
err = hci_req_run(&req, hci_req_sync_complete);
|
||||
if (err < 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
|
||||
* a request with conditionals doesn't trigger any
|
||||
* commands to be sent. This is normal behavior and
|
||||
* should not trigger an error return.
|
||||
|
||||
/* ENODATA means the HCI request command queue is empty.
|
||||
* This can happen when a request with conditionals doesn't
|
||||
* trigger any commands to be sent. This is normal behavior
|
||||
* and should not trigger an error return.
|
||||
*/
|
||||
return 0;
|
||||
if (err == -ENODATA)
|
||||
return 0;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
add_wait_queue(&hdev->req_wait_q, &wait);
|
||||
|
|
Загрузка…
Ссылка в новой задаче