File tree Expand file tree Collapse file tree 1 file changed +10
-8
lines changed Expand file tree Collapse file tree 1 file changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -900,26 +900,29 @@ static void sco_conn_ready(struct sco_conn *conn)
900
900
901
901
BT_DBG ("conn %p" , conn );
902
902
903
- sco_conn_lock (conn );
904
-
905
903
if (sk ) {
906
904
sco_sock_clear_timer (sk );
907
905
bh_lock_sock (sk );
908
906
sk -> sk_state = BT_CONNECTED ;
909
907
sk -> sk_state_change (sk );
910
908
bh_unlock_sock (sk );
911
909
} else {
910
+ sco_conn_lock (conn );
911
+
912
912
parent = sco_get_sock_listen (conn -> src );
913
- if (!parent )
914
- goto done ;
913
+ if (!parent ) {
914
+ sco_conn_unlock (conn );
915
+ return ;
916
+ }
915
917
916
918
bh_lock_sock (parent );
917
919
918
920
sk = sco_sock_alloc (sock_net (parent ), NULL ,
919
921
BTPROTO_SCO , GFP_ATOMIC );
920
922
if (!sk ) {
921
923
bh_unlock_sock (parent );
922
- goto done ;
924
+ sco_conn_unlock (conn );
925
+ return ;
923
926
}
924
927
925
928
sco_sock_init (sk , parent );
@@ -939,10 +942,9 @@ static void sco_conn_ready(struct sco_conn *conn)
939
942
parent -> sk_data_ready (parent , 1 );
940
943
941
944
bh_unlock_sock (parent );
942
- }
943
945
944
- done :
945
- sco_conn_unlock ( conn );
946
+ sco_conn_unlock ( conn );
947
+ }
946
948
}
947
949
948
950
/* ----- SCO interface with lower layer (HCI) ----- */
You can’t perform that action at this time.
0 commit comments