2013-03-02 18:05:51

by Felix Fietkau

[permalink] [raw]
Subject: [PATCH 3.9] mac80211: another fix for idle handling in monitor mode

When setting a monitor interface up or down, the idle state needs to be
recalculated, otherwise the hardware will just stay in its previous idle
state.

Signed-off-by: Felix Fietkau <[email protected]>
---
net/mac80211/iface.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 640afab..baaa860 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -541,6 +541,9 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)

ieee80211_adjust_monitor_flags(sdata, 1);
ieee80211_configure_filter(local);
+ mutex_lock(&local->mtx);
+ ieee80211_recalc_idle(local);
+ mutex_unlock(&local->mtx);

netif_carrier_on(dev);
break;
@@ -812,6 +815,9 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,

ieee80211_adjust_monitor_flags(sdata, -1);
ieee80211_configure_filter(local);
+ mutex_lock(&local->mtx);
+ ieee80211_recalc_idle(local);
+ mutex_unlock(&local->mtx);
break;
case NL80211_IFTYPE_P2P_DEVICE:
/* relies on synchronize_rcu() below */
--
1.8.0.2



2013-03-02 20:25:14

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH 3.9] mac80211: another fix for idle handling in monitor mode

On Sat, 2013-03-02 at 19:05 +0100, Felix Fietkau wrote:
> When setting a monitor interface up or down, the idle state needs to be
> recalculated, otherwise the hardware will just stay in its previous idle
> state.

Applied.

johannes