mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
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: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
538266929e
commit
2dfa1003cc
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user