Bluetooth: Fix using test_and_clear instead of test_and_set
authorJohan Hedberg <johan.hedberg@intel.com>
Thu, 10 Jul 2014 08:50:27 +0000 (11:50 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 10 Jul 2014 08:52:09 +0000 (10:52 +0200)
The code for updating the HCI_CONNECTABLE flag was incorrectly using
test_and_set_bit instead of test_and_clear_bit when HCI_CONNECTABLE is
to be cleared.

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

index 84431b8..8f9df76 100644 (file)
@@ -2726,8 +2726,8 @@ int hci_dev_cmd(unsigned int cmd, void __user *arg)
                                changed = !test_and_set_bit(HCI_CONNECTABLE,
                                                            &hdev->dev_flags);
                        else
-                               changed = test_and_set_bit(HCI_CONNECTABLE,
-                                                          &hdev->dev_flags);
+                               changed = test_and_clear_bit(HCI_CONNECTABLE,
+                                                            &hdev->dev_flags);
 
                        if (changed)
                                mgmt_new_settings(hdev);