mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 01:04:08 +08:00
Bluetooth: Fix __hci_req_sync() handling of empty requests
If a request callback doesn't send any commands __hci_req_sync() should fail imediately instead of waiting for the inevitable timeout to occur. This is particularly important once we start creating requests with conditional command sending which can potentially result in no commands being sent at all. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
This commit is contained in:
parent
01178cd420
commit
53cce22dc7
@ -122,6 +122,14 @@ static int __hci_req_sync(struct hci_dev *hdev,
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
|
||||
req(hdev, opt);
|
||||
|
||||
/* If the request didn't send any commands return immediately */
|
||||
if (skb_queue_empty(&hdev->cmd_q) && atomic_read(&hdev->cmd_cnt)) {
|
||||
hdev->req_status = 0;
|
||||
remove_wait_queue(&hdev->req_wait_q, &wait);
|
||||
return err;
|
||||
}
|
||||
|
||||
schedule_timeout(timeout);
|
||||
|
||||
remove_wait_queue(&hdev->req_wait_q, &wait);
|
||||
|
Loading…
Reference in New Issue
Block a user