Bluetooth: hci_conn: Reduce hci_conn_drop() calls in two functions

BugLink: https://bugs.launchpad.net/bugs/2102118

[ 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>
Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
This commit is contained in:
Markus Elfring
2025-03-12 22:51:00 +09:00
committed by Stefan Bader
parent d641a62dc6
commit a7b6423022
+3 -10
View File
@@ -2353,13 +2353,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;
@@ -2449,15 +2445,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);