mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 06:33:34 +00:00
Bluetooth: Simplify the code for re-arming discoverable timeout
When only the discoverable timeout gets updated, just cancel the current timeout, store the new timeout value. If the new timeout is valid, then arm the discoverable timeout again. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
d4462a07de
commit
36261547c9
@ -1143,15 +1143,13 @@ static int set_discoverable(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||
}
|
||||
|
||||
if (!!cp->val == test_bit(HCI_DISCOVERABLE, &hdev->dev_flags)) {
|
||||
if (hdev->discov_timeout > 0) {
|
||||
cancel_delayed_work(&hdev->discov_off);
|
||||
hdev->discov_timeout = 0;
|
||||
}
|
||||
cancel_delayed_work(&hdev->discov_off);
|
||||
hdev->discov_timeout = timeout;
|
||||
|
||||
if (cp->val && timeout > 0) {
|
||||
hdev->discov_timeout = timeout;
|
||||
if (cp->val && hdev->discov_timeout > 0) {
|
||||
int to = msecs_to_jiffies(hdev->discov_timeout * 1000);
|
||||
queue_delayed_work(hdev->workqueue, &hdev->discov_off,
|
||||
msecs_to_jiffies(hdev->discov_timeout * 1000));
|
||||
to);
|
||||
}
|
||||
|
||||
err = send_settings_rsp(sk, MGMT_OP_SET_DISCOVERABLE, hdev);
|
||||
|
Loading…
Reference in New Issue
Block a user