diff options
| -rw-r--r-- | net/bluetooth/mgmt.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 2e6564e47ded..4c4912e9a7c4 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
| @@ -3924,6 +3924,21 @@ static int set_scan_params(struct sock *sk, struct hci_dev *hdev, | |||
| 3924 | 3924 | ||
| 3925 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, 0, NULL, 0); | 3925 | err = cmd_complete(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, 0, NULL, 0); |
| 3926 | 3926 | ||
| 3927 | /* If background scan is running, restart it so new parameters are | ||
| 3928 | * loaded. | ||
| 3929 | */ | ||
| 3930 | if (test_bit(HCI_LE_SCAN, &hdev->dev_flags) && | ||
| 3931 | hdev->discovery.state == DISCOVERY_STOPPED) { | ||
| 3932 | struct hci_request req; | ||
| 3933 | |||
| 3934 | hci_req_init(&req, hdev); | ||
| 3935 | |||
| 3936 | hci_req_add_le_scan_disable(&req); | ||
| 3937 | hci_req_add_le_passive_scan(&req); | ||
| 3938 | |||
| 3939 | hci_req_run(&req, NULL); | ||
| 3940 | } | ||
| 3941 | |||
| 3927 | hci_dev_unlock(hdev); | 3942 | hci_dev_unlock(hdev); |
| 3928 | 3943 | ||
| 3929 | return err; | 3944 | return err; |
