* [PATCH v2] Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready
@ 2025-02-27 21:28 Pauli Virtanen
2025-02-27 21:54 ` [v2] " bluez.test.bot
2025-02-28 20:40 ` [PATCH v2] " patchwork-bot+bluetooth
0 siblings, 2 replies; 3+ messages in thread
From: Pauli Virtanen @ 2025-02-27 21:28 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Pauli Virtanen, eadavis, luiz.von.dentz
sco_conn refcount shall not be incremented a second time if the sk
already owns the refcount, so hold only when adding new chan.
Add sco_conn_hold() for clarity, as refcnt is never zero here due to the
sco_conn_add().
Fixes SCO socket shutdown not actually closing the SCO connection.
Fixes: ed9588554943 ("Bluetooth: SCO: remove the redundant sco_conn_put")
Signed-off-by: Pauli Virtanen <pav@iki.fi>
---
Notes:
v2: missing signed-off-by, add sco_conn_hold() for clarity
net/bluetooth/sco.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
index aa7bfe26cb40..ed6846864ea9 100644
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
@@ -107,6 +107,14 @@ static void sco_conn_put(struct sco_conn *conn)
kref_put(&conn->ref, sco_conn_free);
}
+static struct sco_conn *sco_conn_hold(struct sco_conn *conn)
+{
+ BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
+
+ kref_get(&conn->ref);
+ return conn;
+}
+
static struct sco_conn *sco_conn_hold_unless_zero(struct sco_conn *conn)
{
if (!conn)
@@ -1353,6 +1361,7 @@ static void sco_conn_ready(struct sco_conn *conn)
bacpy(&sco_pi(sk)->src, &conn->hcon->src);
bacpy(&sco_pi(sk)->dst, &conn->hcon->dst);
+ sco_conn_hold(conn);
hci_conn_hold(conn->hcon);
__sco_chan_add(conn, sk, parent);
@@ -1411,8 +1420,10 @@ static void sco_connect_cfm(struct hci_conn *hcon, __u8 status)
struct sco_conn *conn;
conn = sco_conn_add(hcon);
- if (conn)
+ if (conn) {
sco_conn_ready(conn);
+ sco_conn_put(conn);
+ }
} else
sco_conn_del(hcon, bt_to_errno(status));
}
--
2.48.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: [v2] Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready
2025-02-27 21:28 [PATCH v2] Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready Pauli Virtanen
@ 2025-02-27 21:54 ` bluez.test.bot
2025-02-28 20:40 ` [PATCH v2] " patchwork-bot+bluetooth
1 sibling, 0 replies; 3+ messages in thread
From: bluez.test.bot @ 2025-02-27 21:54 UTC (permalink / raw)
To: linux-bluetooth, pav
[-- Attachment #1: Type: text/plain, Size: 2261 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=938698
---Test result---
Test Summary:
CheckPatch PENDING 0.38 seconds
GitLint PENDING 0.27 seconds
SubjectPrefix PASS 0.07 seconds
BuildKernel PASS 24.23 seconds
CheckAllWarning PASS 26.54 seconds
CheckSparse WARNING 29.87 seconds
BuildKernel32 PASS 23.71 seconds
TestRunnerSetup PASS 427.13 seconds
TestRunner_l2cap-tester PASS 22.76 seconds
TestRunner_iso-tester PASS 29.58 seconds
TestRunner_bnep-tester PASS 4.76 seconds
TestRunner_mgmt-tester FAIL 122.49 seconds
TestRunner_rfcomm-tester PASS 7.84 seconds
TestRunner_sco-tester PASS 11.54 seconds
TestRunner_ioctl-tester PASS 8.26 seconds
TestRunner_mesh-tester PASS 6.02 seconds
TestRunner_smp-tester PASS 7.23 seconds
TestRunner_userchan-tester PASS 4.97 seconds
IncrementalBuild PENDING 0.58 seconds
Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:
##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:
##############################
Test: CheckSparse - WARNING
Desc: Run sparse tool with linux kernel
Output:
net/bluetooth/sco.c: note: in included file:./include/net/bluetooth/hci_core.h:147:35: warning: array of flexible structures
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 490, Passed: 484 (98.8%), Failed: 2, Not Run: 4
Failed Test Cases
LL Privacy - Set Flags 2 (Enable RL) Failed 0.159 seconds
LL Privacy - Set Flags 3 (2 Devices to RL) Failed 0.194 seconds
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready
2025-02-27 21:28 [PATCH v2] Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready Pauli Virtanen
2025-02-27 21:54 ` [v2] " bluez.test.bot
@ 2025-02-28 20:40 ` patchwork-bot+bluetooth
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+bluetooth @ 2025-02-28 20:40 UTC (permalink / raw)
To: Pauli Virtanen; +Cc: linux-bluetooth, eadavis, luiz.von.dentz
Hello:
This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Thu, 27 Feb 2025 23:28:15 +0200 you wrote:
> sco_conn refcount shall not be incremented a second time if the sk
> already owns the refcount, so hold only when adding new chan.
>
> Add sco_conn_hold() for clarity, as refcnt is never zero here due to the
> sco_conn_add().
>
> Fixes SCO socket shutdown not actually closing the SCO connection.
>
> [...]
Here is the summary with links:
- [v2] Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready
https://git.kernel.org/bluetooth/bluetooth-next/c/ebbeaffb5622
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-02-28 20:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-27 21:28 [PATCH v2] Bluetooth: SCO: fix sco_conn refcounting on sco_conn_ready Pauli Virtanen
2025-02-27 21:54 ` [v2] " bluez.test.bot
2025-02-28 20:40 ` [PATCH v2] " patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox