This patch fixes:
- Incorrect calls to ieee80211_hw_config when the radiotap flag is set.
- Failure to actually unset the radiotap flag when all monitors are down.
- Failure to call ieee80211_hw_config after successful interface start.
Signed-off-by: Michael Wu <[email protected]>
---
net/mac80211/ieee80211.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
index 59350b8..fc8b29c 100644
--- a/net/mac80211/ieee80211.c
+++ b/net/mac80211/ieee80211.c
@@ -216,6 +216,7 @@ static int ieee80211_open(struct net_device *dev)
res = local->ops->start(local_to_hw(local));
if (res)
return res;
+ ieee80211_hw_config(local);
}
switch (sdata->type) {
@@ -232,7 +233,6 @@ static int ieee80211_open(struct net_device *dev)
netif_tx_unlock_bh(local->mdev);
local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP;
- ieee80211_hw_config(local);
}
break;
case IEEE80211_IF_TYPE_STA:
@@ -334,8 +334,7 @@ static int ieee80211_stop(struct net_device *dev)
ieee80211_configure_filter(local);
netif_tx_unlock_bh(local->mdev);
- local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP;
- ieee80211_hw_config(local);
+ local->hw.conf.flags &= ~IEEE80211_CONF_RADIOTAP;
}
break;
case IEEE80211_IF_TYPE_STA:
On Wed, 2007-11-28 at 01:57 -0500, Michael Wu wrote:
> This patch fixes:
> - Incorrect calls to ieee80211_hw_config when the radiotap flag is set.
> - Failure to actually unset the radiotap flag when all monitors are down.
> - Failure to call ieee80211_hw_config after successful interface start.
>
> Signed-off-by: Michael Wu <[email protected]>
Thanks. I knew about the second one and just ran into the third one
yesterday after fixing up iwlwifi's radiotap support.
Acked-by: Johannes Berg <[email protected]>
> ---
>
> net/mac80211/ieee80211.c | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
> index 59350b8..fc8b29c 100644
> --- a/net/mac80211/ieee80211.c
> +++ b/net/mac80211/ieee80211.c
> @@ -216,6 +216,7 @@ static int ieee80211_open(struct net_device *dev)
> res = local->ops->start(local_to_hw(local));
> if (res)
> return res;
> + ieee80211_hw_config(local);
> }
>
> switch (sdata->type) {
> @@ -232,7 +233,6 @@ static int ieee80211_open(struct net_device *dev)
> netif_tx_unlock_bh(local->mdev);
>
> local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP;
> - ieee80211_hw_config(local);
> }
> break;
> case IEEE80211_IF_TYPE_STA:
> @@ -334,8 +334,7 @@ static int ieee80211_stop(struct net_device *dev)
> ieee80211_configure_filter(local);
> netif_tx_unlock_bh(local->mdev);
>
> - local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP;
> - ieee80211_hw_config(local);
> + local->hw.conf.flags &= ~IEEE80211_CONF_RADIOTAP;
> }
> break;
> case IEEE80211_IF_TYPE_STA:
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>