Bluetooth: AMP: Factor out phylink_add
authorAndrei Emeltchenko <andrei.emeltchenko@intel.com>
Fri, 5 Oct 2012 13:56:56 +0000 (16:56 +0300)
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>
Sun, 7 Oct 2012 22:21:51 +0000 (06:21 +0800)
Add direction parameter to phylink_add since it is anyway set later.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
include/net/bluetooth/amp.h
net/bluetooth/a2mp.c
net/bluetooth/amp.c

index ae2c3e5..2e7c79e 100644 (file)
@@ -31,7 +31,7 @@ struct amp_ctrl *amp_ctrl_lookup(struct amp_mgr *mgr, u8 id);
 void amp_ctrl_list_flush(struct amp_mgr *mgr);
 
 struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr,
-                            u8 remote_id);
+                            u8 remote_id, bool out);
 
 int phylink_gen_key(struct hci_conn *hcon, u8 *data, u8 *len, u8 *type);
 
index 88a4b58..3ff4dc9 100644 (file)
@@ -417,7 +417,7 @@ static int a2mp_getampassoc_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
        if (!hdev)
                return -EINVAL;
 
-       hcon = phylink_add(hdev, mgr, rsp->id);
+       hcon = phylink_add(hdev, mgr, rsp->id, true);
        if (!hcon)
                goto done;
 
@@ -487,7 +487,7 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
                amp_ctrl_put(ctrl);
        }
 
-       hcon = phylink_add(hdev, mgr, req->local_id);
+       hcon = phylink_add(hdev, mgr, req->local_id, false);
        if (hcon) {
                amp_accept_phylink(hdev, mgr, hcon);
                rsp.status = A2MP_STATUS_SUCCESS;
index 2fc5562..59da0f1 100644 (file)
@@ -108,7 +108,7 @@ static u8 __next_handle(struct amp_mgr *mgr)
 }
 
 struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr,
-                            u8 remote_id)
+                            u8 remote_id, bool out)
 {
        bdaddr_t *dst = mgr->l2cap_conn->dst;
        struct hci_conn *hcon;
@@ -117,12 +117,14 @@ struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr,
        if (!hcon)
                return NULL;
 
+       BT_DBG("hcon %p dst %pMR", hcon, dst);
+
        hcon->state = BT_CONNECT;
-       hcon->out = true;
        hcon->attempt++;
        hcon->handle = __next_handle(mgr);
        hcon->remote_id = remote_id;
        hcon->amp_mgr = mgr;
+       hcon->out = out;
 
        return hcon;
 }