Bluetooth: cmtp: Fix session cleanup on failed conn add
Once the session thread is running, cleanup must be handled by the session thread only. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
This commit is contained in:
parent
ff062ea109
commit
687beaa0d1
|
@ -382,16 +382,17 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
|
||||||
|
|
||||||
if (!(session->flags & (1 << CMTP_LOOPBACK))) {
|
if (!(session->flags & (1 << CMTP_LOOPBACK))) {
|
||||||
err = cmtp_attach_device(session);
|
err = cmtp_attach_device(session);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
goto detach;
|
atomic_inc(&session->terminate);
|
||||||
|
wake_up_process(session->task);
|
||||||
|
up_write(&cmtp_session_sem);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
up_write(&cmtp_session_sem);
|
up_write(&cmtp_session_sem);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
detach:
|
|
||||||
cmtp_detach_device(session);
|
|
||||||
|
|
||||||
unlink:
|
unlink:
|
||||||
__cmtp_unlink_session(session);
|
__cmtp_unlink_session(session);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue