aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/bluetooth/mgmt.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 6df4af6e99c..f7e111f3043 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -900,6 +900,17 @@ static int set_discoverable(struct sock *sk, u16 index, void *data, u16 len)
900 } 900 }
901 901
902 if (!!cp->val == test_bit(HCI_DISCOVERABLE, &hdev->dev_flags)) { 902 if (!!cp->val == test_bit(HCI_DISCOVERABLE, &hdev->dev_flags)) {
903 if (hdev->discov_timeout > 0) {
904 cancel_delayed_work(&hdev->discov_off);
905 hdev->discov_timeout = 0;
906 }
907
908 if (cp->val && timeout > 0) {
909 hdev->discov_timeout = timeout;
910 queue_delayed_work(hdev->workqueue, &hdev->discov_off,
911 msecs_to_jiffies(hdev->discov_timeout * 1000));
912 }
913
903 err = send_settings_rsp(sk, MGMT_OP_SET_DISCOVERABLE, hdev); 914 err = send_settings_rsp(sk, MGMT_OP_SET_DISCOVERABLE, hdev);
904 goto failed; 915 goto failed;
905 } 916 }