Skip to content

Commit

Permalink
regulatory: simplify freq_reg_info_regd
Browse files Browse the repository at this point in the history
The function itself has dual-purpose: it can
retrieve from a given regdomain or from the
globally installed one. Change it to have a
single purpose only: to look up from a given
regdomain. Pass the correct regdomain in the
freq_reg_info() function instead.

This also changes the locking rules for it,
no locking is required any more.

Acked-by: Luis R. Rodriguez <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
  • Loading branch information
jmberg-intel committed Jan 3, 2013
1 parent 0ba857a commit 5d885b9
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions net/wireless/reg.c
Original file line number Diff line number Diff line change
Expand Up @@ -678,28 +678,15 @@ static int freq_reg_info_regd(struct wiphy *wiphy,
u32 center_freq,
u32 desired_bw_khz,
const struct ieee80211_reg_rule **reg_rule,
const struct ieee80211_regdomain *custom_regd)
const struct ieee80211_regdomain *regd)
{
int i;
bool band_rule_found = false;
const struct ieee80211_regdomain *regd;
bool bw_fits = false;

if (!desired_bw_khz)
desired_bw_khz = MHZ_TO_KHZ(20);

regd = custom_regd ? custom_regd : cfg80211_regdomain;

/*
* Follow the driver's regulatory domain, if present, unless a country
* IE has been processed or a user wants to help complaince further
*/
if (!custom_regd &&
last_request->initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
last_request->initiator != NL80211_REGDOM_SET_BY_USER &&
wiphy->regd)
regd = wiphy->regd;

if (!regd)
return -EINVAL;

Expand Down Expand Up @@ -735,10 +722,24 @@ static int freq_reg_info_regd(struct wiphy *wiphy,
int freq_reg_info(struct wiphy *wiphy, u32 center_freq, u32 desired_bw_khz,
const struct ieee80211_reg_rule **reg_rule)
{
const struct ieee80211_regdomain *regd;

assert_reg_lock();
assert_cfg80211_lock();

/*
* Follow the driver's regulatory domain, if present, unless a country
* IE has been processed or a user wants to help complaince further
*/
if (last_request->initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
last_request->initiator != NL80211_REGDOM_SET_BY_USER &&
wiphy->regd)
regd = wiphy->regd;
else
regd = cfg80211_regdomain;

return freq_reg_info_regd(wiphy, center_freq, desired_bw_khz,
reg_rule, NULL);
reg_rule, regd);
}
EXPORT_SYMBOL(freq_reg_info);

Expand Down

0 comments on commit 5d885b9

Please sign in to comment.