From: Johannes Berg <johannes@sipsolutions.net>
To: linux-wireless@vger.kernel.org
Cc: John Linville <linville@tuxdriver.com>,
Johannes Berg <johannes.berg@intel.com>
Subject: [PATCH 4/5] mac80211: fix release_reorder_timeout in scan
Date: Fri, 24 Sep 2010 11:21:08 +0200 [thread overview]
Message-ID: <20100924092306.033777419@sipsolutions.net> (raw)
In-Reply-To: 20100924092104.384954781@sipsolutions.net
From: Johannes Berg <johannes.berg@intel.com>
Even if the reorder timeout timer fires while
scanning, the frames weren't received during
scanning and therefore shouldn't be dropped.
To implement this, changes to the passive scan
RX handler simplify understanding it, because
it currently checks HW_SCANNING independently
of a packet's in-scan receive status (which
doesn't make a big difference, since scan_rx()
will only pick up probe responses and beacons,
which can't be aggregated.)
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/rx.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
--- wireless-testing.orig/net/mac80211/rx.c 2010-09-24 10:57:11.000000000 +0200
+++ wireless-testing/net/mac80211/rx.c 2010-09-24 10:57:14.000000000 +0200
@@ -389,24 +389,22 @@ ieee80211_rx_h_passive_scan(struct ieee8
struct ieee80211_local *local = rx->local;
struct sk_buff *skb = rx->skb;
- if (unlikely(test_bit(SCAN_HW_SCANNING, &local->scanning)))
+ if (likely(!(rx->flags & IEEE80211_RX_IN_SCAN)))
+ return RX_CONTINUE;
+
+ if (test_bit(SCAN_HW_SCANNING, &local->scanning))
return ieee80211_scan_rx(rx->sdata, skb);
- if (unlikely(test_bit(SCAN_SW_SCANNING, &local->scanning) &&
- (rx->flags & IEEE80211_RX_IN_SCAN))) {
+ if (test_bit(SCAN_SW_SCANNING, &local->scanning)) {
/* drop all the other packets during a software scan anyway */
if (ieee80211_scan_rx(rx->sdata, skb) != RX_QUEUED)
dev_kfree_skb(skb);
return RX_QUEUED;
}
- if (unlikely(rx->flags & IEEE80211_RX_IN_SCAN)) {
- /* scanning finished during invoking of handlers */
- I802_DEBUG_INC(local->rx_handlers_drop_passive_scan);
- return RX_DROP_UNUSABLE;
- }
-
- return RX_CONTINUE;
+ /* scanning finished during invoking of handlers */
+ I802_DEBUG_INC(local->rx_handlers_drop_passive_scan);
+ return RX_DROP_UNUSABLE;
}
@@ -2495,10 +2493,6 @@ void ieee80211_release_reorder_timeout(s
rx.queue = tid;
rx.flags |= IEEE80211_RX_RA_MATCH;
- if (unlikely(test_bit(SCAN_HW_SCANNING, &sta->local->scanning) ||
- test_bit(SCAN_OFF_CHANNEL, &sta->local->scanning)))
- rx.flags |= IEEE80211_RX_IN_SCAN;
-
spin_lock(&tid_agg_rx->reorder_lock);
ieee80211_sta_reorder_release(&sta->local->hw, tid_agg_rx, &frames);
spin_unlock(&tid_agg_rx->reorder_lock);
next prev parent reply other threads:[~2010-09-24 9:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-24 9:21 [PATCH 0/5] mac80211 cleanups & fixes Johannes Berg
2010-09-24 9:21 ` [PATCH 1/5] mac80211: remove prepare_for_handlers sdata argument Johannes Berg
2010-09-24 9:21 ` [PATCH 2/5] mac80211: consolidate packet processing Johannes Berg
2010-09-24 9:21 ` [PATCH 3/5] mac80211: clean up rx handling wrt. found_sta Johannes Berg
2010-09-24 9:21 ` Johannes Berg [this message]
2010-09-24 9:21 ` [PATCH 5/5] mac80211: move packet flags into packet Johannes Berg
2010-09-24 10:38 ` [PATCH 5/5 v2] " Johannes Berg
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=20100924092306.033777419@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=johannes.berg@intel.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.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).