aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/mgmt.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2012-03-02 12:55:56 -0500
committerJohan Hedberg <johan.hedberg@intel.com>2012-03-02 18:28:47 -0500
commit4f87da80a5210e66fb47b0e839f4d05016986f78 (patch)
tree9227fcd778badfaa5190cbdd3bd854039fdc6d8f /net/bluetooth/mgmt.c
parent5f15903279143eb640f9ba1c0e72b52fe9e9e2a6 (diff)
Bluetooth: Remove HCI_PI_MGMT_INIT flag for sockets
This flag is of no use right now and is in fact harmful in that it prevents the HCI_MGMT flag to be set for any controllers that may need it after the first one that bluetoothd takes into use (the flag is cleared for the first controller so any subsequent ones through the same bluetoothd mgmt socket never get the HCI_MGMT flag set). Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Acked-by: Marcel Holtmann <marcel@holtmann.org>
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,