diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2015-01-07 15:42:39 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-01-14 09:31:18 +0100 |
commit | 3b24f4c65386dc0f2efb41027bc6e410ea2c0049 (patch) | |
tree | b1015543f700d19b63f3674f214e20e14e67459d /net/mac80211/scan.c | |
parent | 0efbb786f1a3e13d28861ff41aae8dc4be314608 (diff) | |
download | linux-3b24f4c65386dc0f2efb41027bc6e410ea2c0049.tar.gz linux-3b24f4c65386dc0f2efb41027bc6e410ea2c0049.tar.bz2 linux-3b24f4c65386dc0f2efb41027bc6e410ea2c0049.zip |
mac80211: let flush() drop packets when possible
When roaming / suspending, it makes no sense to wait until
the transmit queues of the device are empty. In extreme
condition they can be starved (VO saturating the air), but
even in regular cases, it is pointless to delay the roaming
because the low level driver is trying to send packets to
an AP which is far away. We'd rather drop these packets and
let TCP retransmit if needed. This will allow to speed up
the roaming.
For suspend, the explanation is even more trivial.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r-- | net/mac80211/scan.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c index ae842678b629..844fb5f7910e 100644 --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c @@ -416,7 +416,7 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local, ieee80211_offchannel_stop_vifs(local); /* ensure nullfunc is transmitted before leaving operating channel */ - ieee80211_flush_queues(local, NULL); + ieee80211_flush_queues(local, NULL, false); ieee80211_configure_filter(local); @@ -805,7 +805,7 @@ static void ieee80211_scan_state_resume(struct ieee80211_local *local, ieee80211_offchannel_stop_vifs(local); if (local->ops->flush) { - ieee80211_flush_queues(local, NULL); + ieee80211_flush_queues(local, NULL, false); *next_delay = 0; } else *next_delay = HZ / 10; |