aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/mgmt.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/bluetooth/mgmt.c')
-rw-r--r--net/bluetooth/mgmt.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index fa9a58964278..4b1efedc18c5 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -615,19 +615,17 @@ static void service_cache_off(struct work_struct *work)
615 615
616static void mgmt_init_hdev(struct sock *sk, struct hci_dev *hdev) 616static void mgmt_init_hdev(struct sock *sk, struct hci_dev *hdev)
617{ 617{
618 if (!test_and_clear_bit(HCI_PI_MGMT_INIT, &hci_pi(sk)->flags)) 618 if (test_and_set_bit(HCI_MGMT, &hdev->dev_flags))
619 return; 619 return;
620 620
621 if (!test_and_set_bit(HCI_MGMT, &hdev->dev_flags)) { 621 INIT_DELAYED_WORK(&hdev->service_cache, service_cache_off);
622 INIT_DELAYED_WORK(&hdev->service_cache, service_cache_off);
623 622
624 /* Non-mgmt controlled devices get this bit set 623 /* Non-mgmt controlled devices get this bit set
625 * implicitly so that pairing works for them, however 624 * implicitly so that pairing works for them, however
626 * for mgmt we require user-space to explicitly enable 625 * for mgmt we require user-space to explicitly enable
627 * it 626 * it
628 */ 627 */
629 clear_bit(HCI_PAIRABLE, &hdev->dev_flags); 628 clear_bit(HCI_PAIRABLE, &hdev->dev_flags);
630 }
631} 629}
632 630
633static int read_controller_info(struct sock *sk, struct hci_dev *hdev, 631static int read_controller_info(struct sock *sk, struct hci_dev *hdev,