2015-12-03 06:54:22

by Kalle Valo

[permalink] [raw]
Subject: wireless-testing regression: Could not configure driver mode

Hi John,

with latest wireless-testing[1] I noticed that I cannot start AP mode
anymore with ath10k:

nl80211: Subscribe to mgmt frames with AP handle 0x9e5b410
nl80211: Register frame type=0xb0 nl_handle=0x9e5b410 match=
nl80211: Register frame command failed (type=176): ret=-95 (Operation not supported)
nl80211: Register frame match - hexdump(len=0): [NULL]
nl80211: Could not configure driver mode

With help of Johannes we find out that there are odd changes in
wireless-testing[2]. Reverting the change in cfg.c fixed my regression,
but I don't know really know what has happened.

Kalle

[1] To be exact I was using ath.git master branch but that's just
wireless-testing plus latest ath patches so should affect here.

[2] $ git diff master-2015-11-27..master-2015-11-30 -- net/mac80211
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 2d1c4c35186d..b3a708366a5a 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3384,8 +3384,6 @@ const struct cfg80211_ops mac80211_config_ops = {
.set_bitrate_mask = ieee80211_set_bitrate_mask,
.remain_on_channel = ieee80211_remain_on_channel,
.cancel_remain_on_channel = ieee80211_cancel_remain_on_channel,
- .mgmt_tx = ieee80211_mgmt_tx,
- .mgmt_tx_cancel_wait = ieee80211_mgmt_tx_cancel_wait,
.set_cqm_rssi_config = ieee80211_set_cqm_rssi_config,
.mgmt_frame_register = ieee80211_mgmt_frame_register,
.set_antenna = ieee80211_set_antenna,
diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c
index ce8e1a6c7281..cfd3356e26fd 100644
--- a/net/mac80211/offchannel.c
+++ b/net/mac80211/offchannel.c
@@ -916,6 +916,13 @@ int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
kfree_skb(skb);
goto out_unlock;
}
+ } else {
+ /* Assign a dummy non-zero cookie, it's not sent to
+ * userspace in this case but we rely on its value
+ * internally in the need_offchan case to distinguish
+ * mgmt-tx from remain-on-channel.
+ */
+ *cookie = 0xffffffff;
}

if (!need_offchan) {



2015-12-08 13:21:36

by Bob Copeland

[permalink] [raw]
Subject: Re: wireless-testing rebased, new HEAD commit f5feec4244464225c03ccc9ddad615cb43a044cc

On Mon, Dec 07, 2015 at 02:39:11PM -0500, John W. Linville wrote:
> All,
>
> An earlier pull got a version of mac80211.git that was later reverted.
> Unfortunately, the intervening merges got things so screwed-up I
> couldn't reasonably unravel them. So, I have taken the somewhat
> unusual step of rebasing wireless-testing here in the middle of the
> 4.4 stream.

For this reason, we are considering making the new wireless-testing
rebase the feeder trees for each build instead of once per cycle,
similarly to how linux-next is built. For most users, the main
difference will behaving to remember to 'git pull --rebase' instead of
just 'git pull'.

If there are users that rely on the merging-type workflow, could you
weigh in on whether that is a strong requirement?

I'm running this in test-pilot mode now at its eventual home; comments
welcome:

https://git.kernel.org/cgit/linux/kernel/git/wireless/wireless-testing.git

--
Bob Copeland %% http://bobcopeland.com/

2015-12-07 19:45:17

by John W. Linville

[permalink] [raw]
Subject: wireless-testing rebased, new HEAD commit f5feec4244464225c03ccc9ddad615cb43a044cc

All,

An earlier pull got a version of mac80211.git that was later reverted.
Unfortunately, the intervening merges got things so screwed-up I
couldn't reasonably unravel them. So, I have taken the somewhat
unusual step of rebasing wireless-testing here in the middle of the
4.4 stream.

The current wireless-testing HEAD is commit
f5feec4244464225c03ccc9ddad615cb43a044cc. Consumers of
wireless-testing, please make the necessary adjustment.

I apologize for the inconvenience...

John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2015-12-03 17:45:15

by John W. Linville

[permalink] [raw]
Subject: Re: wireless-testing regression: Could not configure driver mode

Sorry for the merge damage. I was (and still am) trying to deal with
some merge conflicts when pulling the mac80211 tree, FWIW...

On Thu, Dec 03, 2015 at 08:54:16AM +0200, Kalle Valo wrote:
> Hi John,
>
> with latest wireless-testing[1] I noticed that I cannot start AP mode
> anymore with ath10k:
>
> nl80211: Subscribe to mgmt frames with AP handle 0x9e5b410
> nl80211: Register frame type=0xb0 nl_handle=0x9e5b410 match=
> nl80211: Register frame command failed (type=176): ret=-95 (Operation not supported)
> nl80211: Register frame match - hexdump(len=0): [NULL]
> nl80211: Could not configure driver mode
>
> With help of Johannes we find out that there are odd changes in
> wireless-testing[2]. Reverting the change in cfg.c fixed my regression,
> but I don't know really know what has happened.
>
> Kalle
>
> [1] To be exact I was using ath.git master branch but that's just
> wireless-testing plus latest ath patches so should affect here.
>
> [2] $ git diff master-2015-11-27..master-2015-11-30 -- net/mac80211
> diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
> index 2d1c4c35186d..b3a708366a5a 100644
> --- a/net/mac80211/cfg.c
> +++ b/net/mac80211/cfg.c
> @@ -3384,8 +3384,6 @@ const struct cfg80211_ops mac80211_config_ops = {
> .set_bitrate_mask = ieee80211_set_bitrate_mask,
> .remain_on_channel = ieee80211_remain_on_channel,
> .cancel_remain_on_channel = ieee80211_cancel_remain_on_channel,
> - .mgmt_tx = ieee80211_mgmt_tx,
> - .mgmt_tx_cancel_wait = ieee80211_mgmt_tx_cancel_wait,
> .set_cqm_rssi_config = ieee80211_set_cqm_rssi_config,
> .mgmt_frame_register = ieee80211_mgmt_frame_register,
> .set_antenna = ieee80211_set_antenna,
> diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c
> index ce8e1a6c7281..cfd3356e26fd 100644
> --- a/net/mac80211/offchannel.c
> +++ b/net/mac80211/offchannel.c
> @@ -916,6 +916,13 @@ int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
> kfree_skb(skb);
> goto out_unlock;
> }
> + } else {
> + /* Assign a dummy non-zero cookie, it's not sent to
> + * userspace in this case but we rely on its value
> + * internally in the need_offchan case to distinguish
> + * mgmt-tx from remain-on-channel.
> + */
> + *cookie = 0xffffffff;
> }
>
> if (!need_offchan) {
>
>

--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2015-12-03 07:50:47

by Johannes Berg

[permalink] [raw]
Subject: Re: wireless-testing regression: Could not configure driver mode

On Thu, 2015-12-03 at 08:54 +0200, Kalle Valo wrote:

> --- a/net/mac80211/offchannel.c
> +++ b/net/mac80211/offchannel.c
> @@ -916,6 +916,13 @@ int ieee80211_mgmt_tx(struct wiphy *wiphy,
> struct wireless_dev *wdev,
>                         kfree_skb(skb);
>                         goto out_unlock;
>                 }
> +       } else {
> +               /* Assign a dummy non-zero cookie, it's not sent to
> +                * userspace in this case but we rely on its value
> +                * internally in the need_offchan case to distinguish
> +                * mgmt-tx from remain-on-channel.
> +                */
> +               *cookie = 0xffffffff;
>

FWIW, this part isn't relevant for the problem and not actually an
error - this just went into my tree after that was merged into
wireless-testing :)

johannes