Commit ee556f66 authored by Gustavo Padovan's avatar Gustavo Padovan Committed by Johan Hedberg
Browse files

Bluetooth: Do not purge queue in Basic Mode



chan->tx_q is only initialized if we use ERTM or Streaming mode.

Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent d1de6d46
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -549,9 +549,11 @@ static void l2cap_chan_del(struct l2cap_chan *chan, int err)
	if (test_bit(CONF_NOT_COMPLETE, &chan->conf_state))
		return;

	skb_queue_purge(&chan->tx_q);
	switch(chan->mode) {
	case L2CAP_MODE_BASIC:
		break;

	if (chan->mode == L2CAP_MODE_ERTM) {
	case L2CAP_MODE_ERTM:
		__clear_retrans_timer(chan);
		__clear_monitor_timer(chan);
		__clear_ack_timer(chan);
@@ -560,7 +562,15 @@ static void l2cap_chan_del(struct l2cap_chan *chan, int err)

		l2cap_seq_list_free(&chan->srej_list);
		l2cap_seq_list_free(&chan->retrans_list);

		/* fall through */

	case L2CAP_MODE_STREAMING:
		skb_queue_purge(&chan->tx_q);
		break;
	}

	return;
}

static void l2cap_chan_cleanup_listen(struct sock *parent)