linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luca Coelho <luca@coelho.fi>
To: johannes@sipsolutions.net
Cc: linux-wireless@vger.kernel.org, Ilan Peer <ilan.peer@intel.com>,
	Luca Coelho <luciano.coelho@intel.com>
Subject: [PATCH 15/15] mac80211: Fix Tx aggregation session tear down with ITXQs
Date: Wed,  6 Feb 2019 13:17:21 +0200	[thread overview]
Message-ID: <20190206111721.29283-16-luca@coelho.fi> (raw)
In-Reply-To: <20190206111721.29283-1-luca@coelho.fi>

From: Ilan Peer <ilan.peer@intel.com>

When mac80211 requests the low level driver to stop an ongoing
Tx aggregation, the low level driver is expected to call
ieee80211_stop_tx_ba_cb_irqsafe() to indicate that it is ready
to stop the session. The callback in turn schedules a worker
to complete the session tear down, which in turn also handles
the relevant state for the intermediate Tx queue.

However, as this flow in asynchronous, the intermediate queue
should be stopped and not continue servicing frames, as in
such a case frames that are dequeued would be marked as part
of an aggregation, although the aggregation is already been
stopped.

Fix this by stopping the intermediate Tx queue, before
calling the low level driver to stop the Tx aggregation.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/agg-tx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index e94b1a0407af..2c4cd4183bf9 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -8,7 +8,7 @@
  * Copyright 2007, Michael Wu <flamingice@sourmilk.net>
  * Copyright 2007-2010, Intel Corporation
  * Copyright(c) 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018 Intel Corporation
+ * Copyright (C) 2018 - 2019 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -366,6 +366,8 @@ int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
 
 	set_bit(HT_AGG_STATE_STOPPING, &tid_tx->state);
 
+	ieee80211_agg_stop_txq(sta, tid);
+
 	spin_unlock_bh(&sta->lock);
 
 	ht_dbg(sta->sdata, "Tx BA session stop requested for %pM tid %u\n",
-- 
2.20.1


      parent reply	other threads:[~2019-02-06 11:17 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-06 11:17 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2019-02-06 Luca Coelho
2019-02-06 11:17 ` [PATCH 01/15] cfg80211: pmsr: record netlink port ID Luca Coelho
2019-02-06 11:17 ` [PATCH 02/15] nl80211: Fix FTM per burst maximum value Luca Coelho
2019-02-06 11:17 ` [PATCH 03/15] mac80211: support max channel switch time element Luca Coelho
2019-02-06 11:17 ` [PATCH 04/15] mac80211: abort CSA if beacon does not include CSA IEs Luca Coelho
2019-02-06 11:17 ` [PATCH 05/15] radiotap: add 0-length PSDU "not captured" type Luca Coelho
2019-02-06 11:17 ` [PATCH 06/15] mac80211: call drv_ibss_join() on restart Luca Coelho
2019-02-06 11:17 ` [PATCH 07/15] mac80211: fix position of vendor_data read Luca Coelho
2019-02-06 11:17 ` [PATCH 08/15] cfg80211: prevent speculation on cfg80211_classify8021d() return Luca Coelho
2019-02-06 11:17 ` [PATCH 09/15] mac80211: notify driver on subsequent CSA beacons Luca Coelho
2019-02-06 11:17 ` [PATCH 10/15] mac80211: allow CSA to self with immediate quiet Luca Coelho
2019-02-06 11:17 ` [PATCH 11/15] mac80211: ignore quiet mode in probe Luca Coelho
2019-02-06 11:17 ` [PATCH 12/15] mac80211: shorten debug print to avoid warning Luca Coelho
2019-02-11 14:52   ` Johannes Berg
2019-02-11 16:37     ` Luca Coelho
2019-02-06 11:17 ` [PATCH 13/15] cfg80211: allow sending vendor events unicast Luca Coelho
2019-02-06 11:17 ` [PATCH 14/15] mac80211: update HE IEs to D3.3 Luca Coelho
2019-02-06 11:17 ` Luca Coelho [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190206111721.29283-16-luca@coelho.fi \
    --to=luca@coelho.fi \
    --cc=ilan.peer@intel.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=luciano.coelho@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).