Bluetooth: Fix advertising parameter update when toggling connectable
authorJohan Hedberg <johan.hedberg@intel.com>
Thu, 10 Jul 2014 07:51:27 +0000 (10:51 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 10 Jul 2014 08:02:35 +0000 (10:02 +0200)
When we change the connectable state and have advertising enabled we
should update the advertising parameters no matter what. The code was
incorrectly only updating them if advertising was not already active.
This patch fixes the issue.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/mgmt.c

index 91b1f92c681e0372ab1276d99b7e89750b2e0076..38f05386bc0c41f7221602a04fc2aca64ab62a3b 100644 (file)
@@ -1882,8 +1882,8 @@ static int set_connectable(struct sock *sk, struct hci_dev *hdev, void *data,
        if (cp->val || test_bit(HCI_FAST_CONNECTABLE, &hdev->dev_flags))
                write_fast_connectable(&req, false);
 
-       if (test_bit(HCI_ADVERTISING, &hdev->dev_flags) &&
-           !test_bit(HCI_LE_ADV, &hdev->dev_flags))
+       /* Update the advertising parameters if necessary */
+       if (test_bit(HCI_ADVERTISING, &hdev->dev_flags))
                enable_advertising(&req);
 
        err = hci_req_run(&req, set_connectable_complete);