Bluetooth: Fix updating settings when there are no HCI commands to send
authorJohan Hedberg <johan.hedberg@intel.com>
Sat, 19 Oct 2013 20:38:19 +0000 (23:38 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 20 Oct 2013 16:05:40 +0000 (09:05 -0700)
It is possible that the Set Connectable management command doesn't cause
any HCI commands to send (such as when BR/EDR is disabled). We can't
just send a response to user space in this case but must also update the
necessary device flags and settings. This patch fixes the issue by using
the recently introduced set_connectable_update_settings function.

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

index b74a157bde09b1a38fcf591107512315a87512bb..51d0446bc4ed8bf06a8a99d924d13ebf70a66e77 100644 (file)
@@ -1483,8 +1483,8 @@ static int set_connectable(struct sock *sk, struct hci_dev *hdev, void *data,
        if (err < 0) {
                mgmt_pending_remove(cmd);
                if (err == -ENODATA)
-                       err = send_settings_rsp(sk, MGMT_OP_SET_CONNECTABLE,
-                                               hdev);
+                       err = set_connectable_update_settings(hdev, sk,
+                                                             cp->val);
                goto failed;
        }