Hi Luiz, > > so does this fixes it: > > > > diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c > > index 374536e..266c3b7 100644 > > --- a/net/bluetooth/rfcomm/core.c > > +++ b/net/bluetooth/rfcomm/core.c > > @@ -1772,8 +1772,7 @@ static inline void rfcomm_process_dlcs(struct > > rfcomm_sessi > > rfcomm_dlc_clear_timer(d); > > if (!d->out) > > rfcomm_send_dm(s, d->dlci); > > - else > > - d->state = BT_CLOSED; > > + d->state = BT_CLOSED; > > __rfcomm_dlc_close(d, ECONNREFUSED); > > continue; > > } > > > > Not really, rfcomm_dlc is being closed and freed properly, BT_CONNECT2 > or BT_CLOSED doesn't make much difference to __rfcomm_dlc_close as > they both trigger default case. As I said the code works fine with > stacks that cope with DM response, when it doesn't you have to > manually trigger rfcomm_session_put to take care of the reference > created on rfcomm_accept_connection. did you actually test this change? And understand it? Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html