2014-08-13 13:04:54

by Tomasz Bursztyka

[permalink] [raw]
Subject: [PATCH] wireless: core: Reorder wiphy_register() notifications relevantly

Currently it can send regulatory domain change notification before any
NEW_WIPHY notification. Moreover, if rfill_register() fails, calling
wiphy_unregister() will send a DEL_WIPHY though no NEW_WIPHY had been
sent previously.

Thus reordering so it properly notifies NEW_WIPHY before any other.

Signed-off-by: Tomasz Bursztyka <[email protected]>
---
net/wireless/core.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/net/wireless/core.c b/net/wireless/core.c
index afee5e0..682babd 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -635,6 +635,9 @@ int wiphy_register(struct wiphy *wiphy)
if (IS_ERR(rdev->wiphy.debugfsdir))
rdev->wiphy.debugfsdir = NULL;

+ cfg80211_debugfs_rdev_add(rdev);
+ nl80211_notify_wiphy(rdev, NL80211_CMD_NEW_WIPHY);
+
if (wiphy->regulatory_flags & REGULATORY_CUSTOM_REG) {
struct regulatory_request request;

@@ -646,8 +649,6 @@ int wiphy_register(struct wiphy *wiphy)
nl80211_send_reg_change_event(&request);
}

- cfg80211_debugfs_rdev_add(rdev);
-
rdev->wiphy.registered = true;
rtnl_unlock();

@@ -659,8 +660,6 @@ int wiphy_register(struct wiphy *wiphy)
return res;
}

- nl80211_notify_wiphy(rdev, NL80211_CMD_NEW_WIPHY);
-
return 0;
}
EXPORT_SYMBOL(wiphy_register);
--
1.8.5.5



2014-08-18 07:23:14

by Tomasz Bursztyka

[permalink] [raw]
Subject: Re: [PATCH] wireless: core: Reorder wiphy_register() notifications relevantly

Hi Johannes,

> Subject should say cfg80211.

Ok

>> >Currently it can send regulatory domain change notification before any
>> >NEW_WIPHY notification. Moreover, if rfill_register() fails, calling
>> >wiphy_unregister() will send a DEL_WIPHY though no NEW_WIPHY had been
>> >sent previously.
>> >
>> >Thus reordering so it properly notifies NEW_WIPHY before any other.
> This also isn't actually true - now rfkill is*after* NEW_WIPHY.

I will prepare another patch.

> This code had a bunch of sequencing issues in the past - please look
> through the history and check that this doesn't re-introduce any of
> them.

Sure

Tomasz

2014-08-15 13:03:52

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] wireless: core: Reorder wiphy_register() notifications relevantly

Subject should say cfg80211.

On Wed, 2014-08-13 at 16:04 +0300, Tomasz Bursztyka wrote:
> Currently it can send regulatory domain change notification before any
> NEW_WIPHY notification. Moreover, if rfill_register() fails, calling
> wiphy_unregister() will send a DEL_WIPHY though no NEW_WIPHY had been
> sent previously.
>
> Thus reordering so it properly notifies NEW_WIPHY before any other.

This also isn't actually true - now rfkill is *after* NEW_WIPHY.

This code had a bunch of sequencing issues in the past - please look
through the history and check that this doesn't re-introduce any of
them.

johannes