]> Pileus Git - ~andy/linux/commitdiff
Bluetooth: Allow changing device class when BR/EDR is disabled
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 3 Oct 2013 06:37:29 +0000 (23:37 -0700)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 3 Oct 2013 07:05:27 +0000 (10:05 +0300)
Changing the device class when BR/EDR is disabled has no visible
effect for remote devices. However to simplify the logic allow it
as long as the controller supports BR/EDR operations.

If it is not allowed, then the overall logic becomes rather
complicated since the class of device values would need clearing
or restoring when BR/EDR setting changes.

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

index 4ce0f118e4cdd4fbdcbc484dc5eee2480477be03..16125ff918f10991f7633921f2d4cbb03861c8f1 100644 (file)
@@ -1757,7 +1757,7 @@ static int set_dev_class(struct sock *sk, struct hci_dev *hdev, void *data,
 
        BT_DBG("request for %s", hdev->name);
 
-       if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
+       if (!lmp_bredr_capable(hdev))
                return cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS,
                                  MGMT_STATUS_NOT_SUPPORTED);