提交 2dfa1003 编写于 作者: G Gustavo Padovan 提交者: Johan Hedberg

Bluetooth: check for already existent channel before create new one

Move this check to before the channel time creation simplifies the code
and avoid memory allocation if the channel already exist.
Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
Acked-by: NAndrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
上级 53826692
......@@ -3343,21 +3343,16 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
result = L2CAP_CR_NO_MEM;
/* Check if we already have channel with that dcid */
if (__l2cap_get_chan_by_dcid(conn, scid))
goto response;
chan = pchan->ops->new_connection(pchan);
if (!chan)
goto response;
sk = chan->sk;
/* Check if we already have channel with that dcid */
if (__l2cap_get_chan_by_dcid(conn, scid)) {
if (chan->ops->teardown)
chan->ops->teardown(chan, 0);
chan->ops->close(chan);
goto response;
}
hci_conn_hold(conn->hcon);
bacpy(&bt_sk(sk)->src, conn->src);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册