All of lore.kernel.org
 help / color / mirror / Atom feed
From: Antonio Quartulli <ordex@autistici.org>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org,
	Antonio Quartulli <antonio@open-mesh.com>
Subject: [PATCHv4 1/4] mac80211: make mgmt_tx accept a NULL channel
Date: Wed,  5 Jun 2013 17:09:46 +0200	[thread overview]
Message-ID: <1370444989-2095-1-git-send-email-ordex@autistici.org> (raw)

From: Antonio Quartulli <antonio@open-mesh.com>

cfg80211 passes a NULL channel to mgmt_tx if the frame has
to be sent on the one currently in use by the device.
Make the implementation of mgmt_tx correctly handle this
case. Fail if offchan is required.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
---
 net/mac80211/cfg.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 3062210..617c5c8 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2838,6 +2838,12 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
 		return -EOPNOTSUPP;
 	}
 
+	/* configurations requiring offchan cannot work if no channel has been
+	 * specified
+	 */
+	if (need_offchan && !chan)
+		return -EINVAL;
+
 	mutex_lock(&local->mtx);
 
 	/* Check if the operating channel is the requested channel */
@@ -2847,10 +2853,14 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
 		rcu_read_lock();
 		chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
 
-		if (chanctx_conf)
-			need_offchan = chan != chanctx_conf->def.chan;
-		else
+		if (chanctx_conf) {
+			need_offchan = chan && (chan != chanctx_conf->def.chan);
+		} else if (!chan) {
+			ret = -EINVAL;
+			goto out_unlock;
+		} else {
 			need_offchan = true;
+		}
 		rcu_read_unlock();
 	}
 
-- 
1.8.1.5


             reply	other threads:[~2013-06-05 15:11 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-05 15:09 Antonio Quartulli [this message]
2013-06-05 15:09 ` [PATCHv4 2/4] brcm80211: make mgmt_tx in brcmfmac accept a NULL channel Antonio Quartulli
2013-06-05 15:34   ` Arend van Spriel
2013-06-05 15:35     ` Arend van Spriel
2013-06-05 15:40       ` Johannes Berg
2013-06-05 16:58         ` Antonio Quartulli
2013-06-05 17:47         ` John W. Linville
2013-06-05 15:09 ` [PATCHv4 3/4] ath6kl: make mgmt_tx " Antonio Quartulli
2013-06-05 15:16   ` Kalle Valo
2013-06-05 15:09 ` [PATCHv4 4/4] nl80211: allow sending CMD_FRAME without specifying any frequency Antonio Quartulli
2013-06-11 11:53   ` Johannes Berg
2013-06-11 11:55     ` Antonio Quartulli
2013-06-11 11:55 ` [PATCHv4 1/4] mac80211: make mgmt_tx accept a NULL channel Johannes Berg
2013-06-11 11:56   ` Antonio Quartulli
2013-06-11 11:58   ` Johannes Berg
2013-06-11 11:57     ` Antonio Quartulli
2013-06-11 12:07       ` Johannes Berg
2013-06-11 12:07         ` Antonio Quartulli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1370444989-2095-1-git-send-email-ordex@autistici.org \
    --to=ordex@autistici.org \
    --cc=antonio@open-mesh.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.