mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
Bluetooth: hci_conn: use mod_delayed_work for active mode timeout
hci_conn_enter_active_mode() uses queue_delayed_work() with the intention that the work will run after the given timeout. However, queue_delayed_work() does nothing if the work is already queued, so depending on the link policy we may end up putting the connection into idle mode every hdev->idle_timeout ms. Use mod_delayed_work() instead so the work is queued if not already queued, and the timeout is updated otherwise. Signed-off-by: Stefan Sørensen <ssorensen@roku.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
544a237ada
commit
49d0901e26
|
|
@ -2619,8 +2619,8 @@ void hci_conn_enter_active_mode(struct hci_conn *conn, __u8 force_active)
|
|||
|
||||
timer:
|
||||
if (hdev->idle_timeout > 0)
|
||||
queue_delayed_work(hdev->workqueue, &conn->idle_work,
|
||||
msecs_to_jiffies(hdev->idle_timeout));
|
||||
mod_delayed_work(hdev->workqueue, &conn->idle_work,
|
||||
msecs_to_jiffies(hdev->idle_timeout));
|
||||
}
|
||||
|
||||
/* Drop all connection on the device */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user