2012-06-12 12:13:31

by Pontus Fuchs

[permalink] [raw]
Subject: [PATCH v2] mac80211: Disallow changing chan type on monitor when CHAN_MODE_FIXED

If you add a monitor interface in paralell to a normal interface
mac80211 will let you to change the channel type on the monitor
interface even if you are connected. Add an explicit check to
disallow this.

Signed-off-by: Pontus Fuchs <[email protected]>
---
net/mac80211/cfg.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 498c94e..a87591b 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -689,7 +689,8 @@ static int ieee80211_set_channel(struct wiphy *wiphy,
case CHAN_MODE_HOPPING:
return -EBUSY;
case CHAN_MODE_FIXED:
- if (local->oper_channel != chan)
+ if (local->oper_channel != chan ||
+ (!netdev && local->_oper_channel_type != channel_type))
return -EBUSY;
if (!sdata && local->_oper_channel_type == channel_type)
return 0;
--
1.7.5.4



2012-06-13 08:23:53

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH v2] mac80211: Disallow changing chan type on monitor when CHAN_MODE_FIXED

On Tue, 2012-06-12 at 14:13 +0200, Pontus Fuchs wrote:
> If you add a monitor interface in paralell to a normal interface
> mac80211 will let you to change the channel type on the monitor
> interface even if you are connected. Add an explicit check to
> disallow this.

Applied, I fixed the typo (parallel) and replaced !netdev with !sdata to
match the other line of code.

johannes