Thread (17 messages) 17 messages, 4 authors, 2014-01-31

Re: [PATCH v2 1/3] cfg80211: add helper reg_get_regdomain() function

From: Janusz Dziedzic <hidden>
Date: 2014-01-28 19:23:48

On 25 January 2014 01:34, Luis R. Rodriguez [off-list ref] wrote:
On Wed, Jan 22, 2014 at 01:43:42PM +0100, Janusz Dziedzic wrote:
quoted
Add helper function that will return regdomain.
Follow the driver's regulatory domain, if present,
unless a country IE has been processed or a user
wants to help complaince further.

Signed-off-by: Janusz Dziedzic <redacted>
---
 net/wireless/reg.c |   31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 9b897fc..d58a09c 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -522,6 +522,25 @@ bool reg_is_valid_request(const char *alpha2)
      return alpha2_equal(lr->alpha2, alpha2);
 }

+static const struct ieee80211_regdomain *reg_get_regdomain(struct wiphy *wiphy)
+{
+     const struct ieee80211_regdomain *regd;
+     struct regulatory_request *lr = get_last_request();
+
+     /*
+      * Follow the driver's regulatory domain, if present, unless a country
+      * IE has been processed or a user wants to help complaince further
+      */
+     if (lr->initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
+         lr->initiator != NL80211_REGDOM_SET_BY_USER &&
+         wiphy->regd)
+             regd = get_wiphy_regdom(wiphy);
+     else
+             regd = get_cfg80211_regdom();
+
+     return regd;
+}
+
 /* Sanity check on a regulatory rule */
 static bool is_valid_reg_rule(const struct ieee80211_reg_rule *rule)
 {
@@ -821,18 +840,8 @@ const struct ieee80211_reg_rule *freq_reg_info(struct wiphy *wiphy,
                                             u32 center_freq)
 {
      const struct ieee80211_regdomain *regd;
-     struct regulatory_request *lr = get_last_request();

-     /*
-      * Follow the driver's regulatory domain, if present, unless a country
-      * IE has been processed or a user wants to help complaince further
-      */
-     if (lr->initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
-         lr->initiator != NL80211_REGDOM_SET_BY_USER &&
-         wiphy->regd)
-             regd = get_wiphy_regdom(wiphy);
-     else
-             regd = get_cfg80211_regdom();
+     regd = reg_get_regdomain(wiphy);
Nice! I welcome this -- can you also add nl80211 API to expose when
a wiphy has its own wiphy->regd and send that to userspace too?
You mean we should introduce:
iw wlanX reg get?
while in last_request we have only last wiphy(lr->wiphy_idx).


BR
Janusz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help