--- x/net/bluetooth/sco.c +++ y/net/bluetooth/sco.c @@ -191,8 +191,6 @@ static void sco_conn_del(struct hci_conn /* Kill socket */ sco_conn_lock(conn); sk = conn->sk; - if (sk) - sock_hold(sk); sco_conn_unlock(conn); if (sk) { @@ -217,6 +215,7 @@ static void __sco_chan_add(struct sco_co sco_pi(sk)->conn = conn; conn->sk = sk; + sock_hold(sk); if (parent) bt_accept_enqueue(parent, sk, true);