Bluetooth: Fix BR/EDR Page Scan update with Add Device
authorJohan Hedberg <johan.hedberg@intel.com>
Wed, 11 Nov 2015 08:36:15 +0000 (10:36 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 19 Nov 2015 16:50:31 +0000 (17:50 +0100)
The recent changes to remove dependency on HCI in Add Device missed
out relevant changes for BR/EDR. This patch removes the left-overs and
ensures the right HCI command gets queued for BR/EDR.

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

index 8cdacef6b108d3cfcdc6f406d2b64074c1a7cee3..e4ad0457547afb4516915a8972445251d90a3638 100644 (file)
@@ -5894,8 +5894,6 @@ static int add_device(struct sock *sk, struct hci_dev *hdev,
                      void *data, u16 len)
 {
        struct mgmt_cp_add_device *cp = data;
-       struct mgmt_pending_cmd *cmd;
-       struct hci_request req;
        u8 auto_conn, addr_type;
        int err;
 
@@ -5912,18 +5910,8 @@ static int add_device(struct sock *sk, struct hci_dev *hdev,
                                         MGMT_STATUS_INVALID_PARAMS,
                                         &cp->addr, sizeof(cp->addr));
 
-       hci_req_init(&req, hdev);
-
        hci_dev_lock(hdev);
 
-       cmd = mgmt_pending_add(sk, MGMT_OP_ADD_DEVICE, hdev, data, len);
-       if (!cmd) {
-               err = -ENOMEM;
-               goto unlock;
-       }
-
-       cmd->cmd_complete = addr_cmd_complete;
-
        if (cp->addr.type == BDADDR_BREDR) {
                /* Only incoming connections action is supported for now */
                if (cp->action != 0x01) {
@@ -5939,7 +5927,7 @@ static int add_device(struct sock *sk, struct hci_dev *hdev,
                if (err)
                        goto unlock;
 
-               __hci_update_page_scan(&req);
+               hci_update_page_scan(hdev);
 
                goto added;
        }