Skip to contentSkip to conversation

Bluetooth: cmtp: Fix session cleanup on failed conn add

PATCH Applied Peter Hurley 2 participants 2 messages Aug 5, 2011 – Aug 11, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Bluetooth: cmtp: Fix session cleanup on failed conn add

Once the session thread is running, cleanup must be handled by the session thread only.

---
 net/bluetooth/cmtp/core.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
net/bluetooth/cmtp/core.c +6 -5
index 42cb2f4..521baa4 100644
@@ -382,16 +382,17 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
 
 	if (!(session->flags & (1 << CMTP_LOOPBACK))) {
 		err = cmtp_attach_device(session);
-		if (err < 0)
-			goto detach;
+		if (err < 0) {
+			atomic_inc(&session->terminate);
+			wake_up_process(session->task);
+			up_write(&cmtp_session_sem);
+			return err;
+		}
 	}
 
 	up_write(&cmtp_session_sem);
 	return 0;
 
-detach:
-	cmtp_detach_device(session);
-
 unlink:
 	__cmtp_unlink_session(session);
 
Signature · 1 line
1.7.4.1
#1 lore raw

Hi Peter,

Quoted 7 lines · Peter Hurley

Once the session thread is running, cleanup must be handled by the session thread only.

---
 net/bluetooth/cmtp/core.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

Applied, Thanks.

Gustavo