summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorMarkus Elfring <elfring@users.sourceforge.net>2024-10-01 09:21:25 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-12-14 20:03:55 +0100
commitda561d5fb646097a48577745a684cab246bae836 (patch)
tree3966f4c5fe2deff1d7872fa66bf859d31cb16530 /net
parent6e72b117614ce77e543cb7e8ae3d24a330cfa722 (diff)
downloadlinux-da561d5fb646097a48577745a684cab246bae836.tar.gz
linux-da561d5fb646097a48577745a684cab246bae836.tar.bz2
linux-da561d5fb646097a48577745a684cab246bae836.zip
Bluetooth: hci_conn: Reduce hci_conn_drop() calls in two functions
[ Upstream commit d96b543c6f3b78b6440b68b5a5bbface553eff28 ] An hci_conn_drop() call was immediately used after a null pointer check for an hci_conn_link() call in two function implementations. Thus call such a function only once instead directly before the checks. This issue was transformed by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net')
-rw-r--r--net/bluetooth/hci_conn.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 6354cdf9c2b3..a1dfd865d61a 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -2345,13 +2345,9 @@ struct hci_conn *hci_bind_bis(struct hci_dev *hdev, bdaddr_t *dst,
conn->iso_qos.bcast.big);
if (parent && parent != conn) {
link = hci_conn_link(parent, conn);
- if (!link) {
- hci_conn_drop(conn);
- return ERR_PTR(-ENOLINK);
- }
-
- /* Link takes the refcount */
hci_conn_drop(conn);
+ if (!link)
+ return ERR_PTR(-ENOLINK);
}
return conn;
@@ -2441,15 +2437,12 @@ struct hci_conn *hci_connect_cis(struct hci_dev *hdev, bdaddr_t *dst,
}
link = hci_conn_link(le, cis);
+ hci_conn_drop(cis);
if (!link) {
hci_conn_drop(le);
- hci_conn_drop(cis);
return ERR_PTR(-ENOLINK);
}
- /* Link takes the refcount */
- hci_conn_drop(cis);
-
cis->state = BT_CONNECT;
hci_le_create_cis_pending(hdev);