On Wed, Jan 22, 2014 at 1:16 AM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > From: Johannes Berg <johannes.berg@xxxxxxxxx> > > Before allowing userspace to initiate a channel switch, check > that it's actually connected in some sense. Also use a more > appropriate error code for the not connected case. > > Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx> > --- > net/wireless/nl80211.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c > index 6e78c62..0c2ef08 100644 > --- a/net/wireless/nl80211.c > +++ b/net/wireless/nl80211.c > @@ -5799,10 +5799,15 @@ static int nl80211_channel_switch(struct sk_buff *skb, struct genl_info *info) > > /* useless if AP is not running */ > if (!wdev->beacon_interval) > - return -EINVAL; > + return -ENOTCONN; > break; > case NL80211_IFTYPE_ADHOC: > + if (!wdev->ssid_len) > + return -ENOTCONN; > + break; > case NL80211_IFTYPE_MESH_POINT: > + if (!wdev->mesh_id_len) > + return -ENOTCONN; Hmmm. I'm pretty sure there are some users which set the channel prior to mesh join. This would break that and only allow sending the channel with mesh join? Thomas -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html