diff mbox

wireless-testing regression: Could not configure driver mode

Message ID 87fuzkf2ef.fsf@kamboji.qca.qualcomm.com (mailing list archive)
State Not Applicable
Delegated to: Kalle Valo
Headers show

Commit Message

Kalle Valo Dec. 3, 2015, 6:54 a.m. UTC
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

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Johannes Berg Dec. 3, 2015, 7:50 a.m. UTC | #1
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
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
John W. Linville Dec. 3, 2015, 5:40 p.m. UTC | #2
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 Dec. 7, 2015, 7:39 p.m. UTC | #3
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
Bob Copeland Dec. 8, 2015, 1:21 p.m. UTC | #4
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
diff mbox

Patch

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) {