Hi Mat, > > If we have unacked frames when closing bluetooth socket we deadlock > > since conn->chan_lock, chan->lock and socket lock are taken. Remove > > __l2cap_wait_ack completely. > > > > Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx> > > I don't think you want to remove this code completely, at least not > without giving some thought to the problem it is solving. > > The problem is that programs may have an open socket which they send > some data on, then immediately close. There is no feedback when data > is actually sent over the air, so the socket may end up getting torn > down while there is still data in the HCI tx buffer or some data was > lost and needs to be retransmitted. Waiting for an acknowledgement > confirms that the application's sent data made it to the remote > device. > > Without this code, it's difficult to use l2test on a number of > qualification tests. Profiles or applications using ERTM may depend > on the "wait for ack before closing" behavior in order to have a clean > disconnect. isn't that what we have SO_LINGER for? 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