Bluetooth: Factor out common L2CAP connection code
authorMat Martineau <mathewm@codeaurora.org>
Thu, 11 Oct 2012 14:48:22 +0000 (17:48 +0300)
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>
Fri, 12 Oct 2012 09:12:19 +0000 (17:12 +0800)
L2CAP connect requests and create channel requests share a significant
amount of code.  This change moves common code to a new function.

Signed-off-by: Mat Martineau <mathewm@codeaurora.org>
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
net/bluetooth/l2cap_core.c

index 54f5a4e98d338ba25fa4adaec9206d3b9f62aa13..867eda23435bd1246ffadac418eec1dd60db5e6c 100644 (file)
@@ -3394,7 +3394,8 @@ static inline int l2cap_command_rej(struct l2cap_conn *conn, struct l2cap_cmd_hd
        return 0;
 }
 
-static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data)
+static void __l2cap_connect(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd,
+                           u8 *data, u8 rsp_code, u8 amp_id)
 {
        struct l2cap_conn_req *req = (struct l2cap_conn_req *) data;
        struct l2cap_conn_rsp rsp;
@@ -3488,7 +3489,7 @@ sendresp:
        rsp.dcid   = cpu_to_le16(dcid);
        rsp.result = cpu_to_le16(result);
        rsp.status = cpu_to_le16(status);
-       l2cap_send_cmd(conn, cmd->ident, L2CAP_CONN_RSP, sizeof(rsp), &rsp);
+       l2cap_send_cmd(conn, cmd->ident, rsp_code, sizeof(rsp), &rsp);
 
        if (result == L2CAP_CR_PEND && status == L2CAP_CS_NO_INFO) {
                struct l2cap_info_req info;
@@ -3511,7 +3512,12 @@ sendresp:
                                        l2cap_build_conf_req(chan, buf), buf);
                chan->num_conf_req++;
        }
+}
 
+static int l2cap_connect_req(struct l2cap_conn *conn,
+                            struct l2cap_cmd_hdr *cmd, u8 *data)
+{
+       __l2cap_connect(conn, cmd, data, L2CAP_CONN_RSP, 0);
        return 0;
 }