RE: [Bluez-devel] Rfcomm Use Count

Daryl Van Vorst
2004-09-21T22:44:50Z

Hi Marcel,

> maybe this one helps:
>=20
> --- 1.29/net/bluetooth/rfcomm/sock.c 2004-06-04 02:41:47 +02:00
> +++ edited/net/bluetooth/rfcomm/sock.c 2004-09-22 00:12:34 +02:00
> @@ -104,8 +104,13 @@
> if (d->state =3D=3D BT_CONNECTED)
> rfcomm_session_getaddr(d->session,=20
> &bt_sk(sk)->src, NULL);
> sk->sk_state_change(sk);
> - } else
> + } else {
> + if (d->state =3D=3D BT_CLOSED) {
> + bt_accept_unlink(sk);
> + sk->sk_zapped =3D 1;
> + }
> parent->sk_data_ready(parent, 0);
> + }
> =20
> bh_unlock_sock(sk);
> }

No luck.

Same behaviour as without the close and kill calls.

I noticed in l2cap.c that after l2cap_chan_del() is called (which now =
does
the accept_unlink()), l2cap_sock_kill() is often called which decrements =
its
use count which was incremented in l2cap_sock_alloc() (much like in =
rfcomm).
But in rfcomm, there don't appear to be any calls to ...sock_kill() for
similar circumstances.

-Daryl.