Hi Daniel, On Mon, Nov 01, 2010, Daniel Örstadius wrote: > Remove starting the timer when setting the AVDTP state to idle. If > needed, the timer should probably already have been started in > avdtp_unref when the reference count goes to one. > > Since reference counting is handled in avdtp_ref and avdtp_unref, it > seems reasonable that not to inspect the count outside of those > functions. > > The issue was found when using Device.Disconnect to disconnect a > headset. It was revealed by commit > c72ce0f12a8387a70a6f0109f13bd6f414f32be8. > > Before the commit, the timer was removed and then started again. > After applying it, the idle callback (disconnect_timeout) is called > twice, causing a crash. Thanks for investigating and fixing this. avdtp_unref indeed does already take care of the timer so the call in set_state seems redundant (in addition to being in a questionable place to begin with). The patch has been pushed upstream. Johan -- 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