cfg80211: remove CFG80211_REG_DEBUG
Instead of having this Kconfig option, which just *floods* the kernel log, * remove the per-channel prints that are fairly useless anyway * convert the conditional printing to pr_debug() Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
725da8dee4
commit
c799ba6eab
|
@ -61,19 +61,6 @@ config CFG80211_DEVELOPER_WARNINGS
|
||||||
on it (or mac80211).
|
on it (or mac80211).
|
||||||
|
|
||||||
|
|
||||||
config CFG80211_REG_DEBUG
|
|
||||||
bool "cfg80211 regulatory debugging"
|
|
||||||
depends on CFG80211
|
|
||||||
default n
|
|
||||||
---help---
|
|
||||||
You can enable this if you want to debug regulatory changes.
|
|
||||||
For more information on cfg80211 regulatory refer to the wireless
|
|
||||||
wiki:
|
|
||||||
|
|
||||||
http://wireless.kernel.org/en/developers/Regulatory
|
|
||||||
|
|
||||||
If unsure, say N.
|
|
||||||
|
|
||||||
config CFG80211_CERTIFICATION_ONUS
|
config CFG80211_CERTIFICATION_ONUS
|
||||||
bool "cfg80211 certification onus"
|
bool "cfg80211 certification onus"
|
||||||
depends on CFG80211 && EXPERT
|
depends on CFG80211 && EXPERT
|
||||||
|
|
|
@ -60,13 +60,6 @@
|
||||||
#include "regdb.h"
|
#include "regdb.h"
|
||||||
#include "nl80211.h"
|
#include "nl80211.h"
|
||||||
|
|
||||||
#ifdef CONFIG_CFG80211_REG_DEBUG
|
|
||||||
#define REG_DBG_PRINT(format, args...) \
|
|
||||||
printk(KERN_DEBUG pr_fmt(format), ##args)
|
|
||||||
#else
|
|
||||||
#define REG_DBG_PRINT(args...)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Grace period we give before making sure all current interfaces reside on
|
* Grace period we give before making sure all current interfaces reside on
|
||||||
* channels allowed by the current regulatory domain.
|
* channels allowed by the current regulatory domain.
|
||||||
|
@ -178,12 +171,10 @@ enum nl80211_dfs_regions reg_get_dfs_region(struct wiphy *wiphy)
|
||||||
if (wiphy_regd->dfs_region == regd->dfs_region)
|
if (wiphy_regd->dfs_region == regd->dfs_region)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
REG_DBG_PRINT("%s: device specific dfs_region "
|
pr_debug("%s: device specific dfs_region (%s) disagrees with cfg80211's central dfs_region (%s)\n",
|
||||||
"(%s) disagrees with cfg80211's "
|
dev_name(&wiphy->dev),
|
||||||
"central dfs_region (%s)\n",
|
reg_dfs_region_str(wiphy_regd->dfs_region),
|
||||||
dev_name(&wiphy->dev),
|
reg_dfs_region_str(regd->dfs_region));
|
||||||
reg_dfs_region_str(wiphy_regd->dfs_region),
|
|
||||||
reg_dfs_region_str(regd->dfs_region));
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return regd->dfs_region;
|
return regd->dfs_region;
|
||||||
|
@ -541,7 +532,7 @@ static DECLARE_DELAYED_WORK(crda_timeout, crda_timeout_work);
|
||||||
|
|
||||||
static void crda_timeout_work(struct work_struct *work)
|
static void crda_timeout_work(struct work_struct *work)
|
||||||
{
|
{
|
||||||
REG_DBG_PRINT("Timeout while waiting for CRDA to reply, restoring regulatory settings\n");
|
pr_debug("Timeout while waiting for CRDA to reply, restoring regulatory settings\n");
|
||||||
rtnl_lock();
|
rtnl_lock();
|
||||||
reg_crda_timeouts++;
|
reg_crda_timeouts++;
|
||||||
restore_regulatory_settings(true);
|
restore_regulatory_settings(true);
|
||||||
|
@ -583,7 +574,7 @@ static int call_crda(const char *alpha2)
|
||||||
|
|
||||||
if (!is_world_regdom((char *) alpha2))
|
if (!is_world_regdom((char *) alpha2))
|
||||||
pr_debug("Calling CRDA for country: %c%c\n",
|
pr_debug("Calling CRDA for country: %c%c\n",
|
||||||
alpha2[0], alpha2[1]);
|
alpha2[0], alpha2[1]);
|
||||||
else
|
else
|
||||||
pr_debug("Calling CRDA to update world regulatory domain\n");
|
pr_debug("Calling CRDA to update world regulatory domain\n");
|
||||||
|
|
||||||
|
@ -1130,42 +1121,6 @@ const char *reg_initiator_name(enum nl80211_reg_initiator initiator)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(reg_initiator_name);
|
EXPORT_SYMBOL(reg_initiator_name);
|
||||||
|
|
||||||
static void chan_reg_rule_print_dbg(const struct ieee80211_regdomain *regd,
|
|
||||||
struct ieee80211_channel *chan,
|
|
||||||
const struct ieee80211_reg_rule *reg_rule)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_CFG80211_REG_DEBUG
|
|
||||||
const struct ieee80211_power_rule *power_rule;
|
|
||||||
const struct ieee80211_freq_range *freq_range;
|
|
||||||
char max_antenna_gain[32], bw[32];
|
|
||||||
|
|
||||||
power_rule = ®_rule->power_rule;
|
|
||||||
freq_range = ®_rule->freq_range;
|
|
||||||
|
|
||||||
if (!power_rule->max_antenna_gain)
|
|
||||||
snprintf(max_antenna_gain, sizeof(max_antenna_gain), "N/A");
|
|
||||||
else
|
|
||||||
snprintf(max_antenna_gain, sizeof(max_antenna_gain), "%d mBi",
|
|
||||||
power_rule->max_antenna_gain);
|
|
||||||
|
|
||||||
if (reg_rule->flags & NL80211_RRF_AUTO_BW)
|
|
||||||
snprintf(bw, sizeof(bw), "%d KHz, %d KHz AUTO",
|
|
||||||
freq_range->max_bandwidth_khz,
|
|
||||||
reg_get_max_bandwidth(regd, reg_rule));
|
|
||||||
else
|
|
||||||
snprintf(bw, sizeof(bw), "%d KHz",
|
|
||||||
freq_range->max_bandwidth_khz);
|
|
||||||
|
|
||||||
REG_DBG_PRINT("Updating information on frequency %d MHz with regulatory rule:\n",
|
|
||||||
chan->center_freq);
|
|
||||||
|
|
||||||
REG_DBG_PRINT("(%d KHz - %d KHz @ %s), (%s, %d mBm)\n",
|
|
||||||
freq_range->start_freq_khz, freq_range->end_freq_khz,
|
|
||||||
bw, max_antenna_gain,
|
|
||||||
power_rule->max_eirp);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static uint32_t reg_rule_to_chan_bw_flags(const struct ieee80211_regdomain *regd,
|
static uint32_t reg_rule_to_chan_bw_flags(const struct ieee80211_regdomain *regd,
|
||||||
const struct ieee80211_reg_rule *reg_rule,
|
const struct ieee80211_reg_rule *reg_rule,
|
||||||
const struct ieee80211_channel *chan)
|
const struct ieee80211_channel *chan)
|
||||||
|
@ -1240,20 +1195,19 @@ static void handle_channel(struct wiphy *wiphy,
|
||||||
if (lr->initiator == NL80211_REGDOM_SET_BY_DRIVER &&
|
if (lr->initiator == NL80211_REGDOM_SET_BY_DRIVER &&
|
||||||
request_wiphy && request_wiphy == wiphy &&
|
request_wiphy && request_wiphy == wiphy &&
|
||||||
request_wiphy->regulatory_flags & REGULATORY_STRICT_REG) {
|
request_wiphy->regulatory_flags & REGULATORY_STRICT_REG) {
|
||||||
REG_DBG_PRINT("Disabling freq %d MHz for good\n",
|
pr_debug("Disabling freq %d MHz for good\n",
|
||||||
chan->center_freq);
|
chan->center_freq);
|
||||||
chan->orig_flags |= IEEE80211_CHAN_DISABLED;
|
chan->orig_flags |= IEEE80211_CHAN_DISABLED;
|
||||||
chan->flags = chan->orig_flags;
|
chan->flags = chan->orig_flags;
|
||||||
} else {
|
} else {
|
||||||
REG_DBG_PRINT("Disabling freq %d MHz\n",
|
pr_debug("Disabling freq %d MHz\n",
|
||||||
chan->center_freq);
|
chan->center_freq);
|
||||||
chan->flags |= IEEE80211_CHAN_DISABLED;
|
chan->flags |= IEEE80211_CHAN_DISABLED;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
regd = reg_get_regdomain(wiphy);
|
regd = reg_get_regdomain(wiphy);
|
||||||
chan_reg_rule_print_dbg(regd, chan, reg_rule);
|
|
||||||
|
|
||||||
power_rule = ®_rule->power_rule;
|
power_rule = ®_rule->power_rule;
|
||||||
bw_flags = reg_rule_to_chan_bw_flags(regd, reg_rule, chan);
|
bw_flags = reg_rule_to_chan_bw_flags(regd, reg_rule, chan);
|
||||||
|
@ -1391,18 +1345,15 @@ static bool ignore_reg_update(struct wiphy *wiphy,
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (!lr) {
|
if (!lr) {
|
||||||
REG_DBG_PRINT("Ignoring regulatory request set by %s "
|
pr_debug("Ignoring regulatory request set by %s since last_request is not set\n",
|
||||||
"since last_request is not set\n",
|
reg_initiator_name(initiator));
|
||||||
reg_initiator_name(initiator));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (initiator == NL80211_REGDOM_SET_BY_CORE &&
|
if (initiator == NL80211_REGDOM_SET_BY_CORE &&
|
||||||
wiphy->regulatory_flags & REGULATORY_CUSTOM_REG) {
|
wiphy->regulatory_flags & REGULATORY_CUSTOM_REG) {
|
||||||
REG_DBG_PRINT("Ignoring regulatory request set by %s "
|
pr_debug("Ignoring regulatory request set by %s since the driver uses its own custom regulatory domain\n",
|
||||||
"since the driver uses its own custom "
|
reg_initiator_name(initiator));
|
||||||
"regulatory domain\n",
|
|
||||||
reg_initiator_name(initiator));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1413,10 +1364,8 @@ static bool ignore_reg_update(struct wiphy *wiphy,
|
||||||
if (wiphy_strict_alpha2_regd(wiphy) && !wiphy->regd &&
|
if (wiphy_strict_alpha2_regd(wiphy) && !wiphy->regd &&
|
||||||
initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
|
initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
|
||||||
!is_world_regdom(lr->alpha2)) {
|
!is_world_regdom(lr->alpha2)) {
|
||||||
REG_DBG_PRINT("Ignoring regulatory request set by %s "
|
pr_debug("Ignoring regulatory request set by %s since the driver requires its own regulatory domain to be set first\n",
|
||||||
"since the driver requires its own regulatory "
|
reg_initiator_name(initiator));
|
||||||
"domain to be set first\n",
|
|
||||||
reg_initiator_name(initiator));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1697,7 +1646,7 @@ static void reg_check_chans_work(struct work_struct *work)
|
||||||
{
|
{
|
||||||
struct cfg80211_registered_device *rdev;
|
struct cfg80211_registered_device *rdev;
|
||||||
|
|
||||||
REG_DBG_PRINT("Verifying active interfaces after reg change\n");
|
pr_debug("Verifying active interfaces after reg change\n");
|
||||||
rtnl_lock();
|
rtnl_lock();
|
||||||
|
|
||||||
list_for_each_entry(rdev, &cfg80211_rdev_list, list)
|
list_for_each_entry(rdev, &cfg80211_rdev_list, list)
|
||||||
|
@ -1779,8 +1728,8 @@ static void handle_channel_custom(struct wiphy *wiphy,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_ERR(reg_rule)) {
|
if (IS_ERR(reg_rule)) {
|
||||||
REG_DBG_PRINT("Disabling freq %d MHz as custom regd has no rule that fits it\n",
|
pr_debug("Disabling freq %d MHz as custom regd has no rule that fits it\n",
|
||||||
chan->center_freq);
|
chan->center_freq);
|
||||||
if (wiphy->regulatory_flags & REGULATORY_WIPHY_SELF_MANAGED) {
|
if (wiphy->regulatory_flags & REGULATORY_WIPHY_SELF_MANAGED) {
|
||||||
chan->flags |= IEEE80211_CHAN_DISABLED;
|
chan->flags |= IEEE80211_CHAN_DISABLED;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1790,8 +1739,6 @@ static void handle_channel_custom(struct wiphy *wiphy,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
chan_reg_rule_print_dbg(regd, chan, reg_rule);
|
|
||||||
|
|
||||||
power_rule = ®_rule->power_rule;
|
power_rule = ®_rule->power_rule;
|
||||||
bw_flags = reg_rule_to_chan_bw_flags(regd, reg_rule, chan);
|
bw_flags = reg_rule_to_chan_bw_flags(regd, reg_rule, chan);
|
||||||
|
|
||||||
|
@ -2522,7 +2469,7 @@ static void restore_alpha2(char *alpha2, bool reset_user)
|
||||||
if (is_user_regdom_saved()) {
|
if (is_user_regdom_saved()) {
|
||||||
/* Unless we're asked to ignore it and reset it */
|
/* Unless we're asked to ignore it and reset it */
|
||||||
if (reset_user) {
|
if (reset_user) {
|
||||||
REG_DBG_PRINT("Restoring regulatory settings including user preference\n");
|
pr_debug("Restoring regulatory settings including user preference\n");
|
||||||
user_alpha2[0] = '9';
|
user_alpha2[0] = '9';
|
||||||
user_alpha2[1] = '7';
|
user_alpha2[1] = '7';
|
||||||
|
|
||||||
|
@ -2532,24 +2479,24 @@ static void restore_alpha2(char *alpha2, bool reset_user)
|
||||||
* back as they were for a full restore.
|
* back as they were for a full restore.
|
||||||
*/
|
*/
|
||||||
if (!is_world_regdom(ieee80211_regdom)) {
|
if (!is_world_regdom(ieee80211_regdom)) {
|
||||||
REG_DBG_PRINT("Keeping preference on module parameter ieee80211_regdom: %c%c\n",
|
pr_debug("Keeping preference on module parameter ieee80211_regdom: %c%c\n",
|
||||||
ieee80211_regdom[0], ieee80211_regdom[1]);
|
ieee80211_regdom[0], ieee80211_regdom[1]);
|
||||||
alpha2[0] = ieee80211_regdom[0];
|
alpha2[0] = ieee80211_regdom[0];
|
||||||
alpha2[1] = ieee80211_regdom[1];
|
alpha2[1] = ieee80211_regdom[1];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
REG_DBG_PRINT("Restoring regulatory settings while preserving user preference for: %c%c\n",
|
pr_debug("Restoring regulatory settings while preserving user preference for: %c%c\n",
|
||||||
user_alpha2[0], user_alpha2[1]);
|
user_alpha2[0], user_alpha2[1]);
|
||||||
alpha2[0] = user_alpha2[0];
|
alpha2[0] = user_alpha2[0];
|
||||||
alpha2[1] = user_alpha2[1];
|
alpha2[1] = user_alpha2[1];
|
||||||
}
|
}
|
||||||
} else if (!is_world_regdom(ieee80211_regdom)) {
|
} else if (!is_world_regdom(ieee80211_regdom)) {
|
||||||
REG_DBG_PRINT("Keeping preference on module parameter ieee80211_regdom: %c%c\n",
|
pr_debug("Keeping preference on module parameter ieee80211_regdom: %c%c\n",
|
||||||
ieee80211_regdom[0], ieee80211_regdom[1]);
|
ieee80211_regdom[0], ieee80211_regdom[1]);
|
||||||
alpha2[0] = ieee80211_regdom[0];
|
alpha2[0] = ieee80211_regdom[0];
|
||||||
alpha2[1] = ieee80211_regdom[1];
|
alpha2[1] = ieee80211_regdom[1];
|
||||||
} else
|
} else
|
||||||
REG_DBG_PRINT("Restoring regulatory settings\n");
|
pr_debug("Restoring regulatory settings\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void restore_custom_reg_settings(struct wiphy *wiphy)
|
static void restore_custom_reg_settings(struct wiphy *wiphy)
|
||||||
|
@ -2661,14 +2608,14 @@ static void restore_regulatory_settings(bool reset_user)
|
||||||
list_splice_tail_init(&tmp_reg_req_list, ®_requests_list);
|
list_splice_tail_init(&tmp_reg_req_list, ®_requests_list);
|
||||||
spin_unlock(®_requests_lock);
|
spin_unlock(®_requests_lock);
|
||||||
|
|
||||||
REG_DBG_PRINT("Kicking the queue\n");
|
pr_debug("Kicking the queue\n");
|
||||||
|
|
||||||
schedule_work(®_work);
|
schedule_work(®_work);
|
||||||
}
|
}
|
||||||
|
|
||||||
void regulatory_hint_disconnect(void)
|
void regulatory_hint_disconnect(void)
|
||||||
{
|
{
|
||||||
REG_DBG_PRINT("All devices are disconnected, going to restore regulatory settings\n");
|
pr_debug("All devices are disconnected, going to restore regulatory settings\n");
|
||||||
restore_regulatory_settings(false);
|
restore_regulatory_settings(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2716,10 +2663,10 @@ int regulatory_hint_found_beacon(struct wiphy *wiphy,
|
||||||
if (!reg_beacon)
|
if (!reg_beacon)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
REG_DBG_PRINT("Found new beacon on frequency: %d MHz (Ch %d) on %s\n",
|
pr_debug("Found new beacon on frequency: %d MHz (Ch %d) on %s\n",
|
||||||
beacon_chan->center_freq,
|
beacon_chan->center_freq,
|
||||||
ieee80211_frequency_to_channel(beacon_chan->center_freq),
|
ieee80211_frequency_to_channel(beacon_chan->center_freq),
|
||||||
wiphy_name(wiphy));
|
wiphy_name(wiphy));
|
||||||
|
|
||||||
memcpy(®_beacon->chan, beacon_chan,
|
memcpy(®_beacon->chan, beacon_chan,
|
||||||
sizeof(struct ieee80211_channel));
|
sizeof(struct ieee80211_channel));
|
||||||
|
@ -2798,8 +2745,7 @@ bool reg_supported_dfs_region(enum nl80211_dfs_regions dfs_region)
|
||||||
case NL80211_DFS_JP:
|
case NL80211_DFS_JP:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
REG_DBG_PRINT("Ignoring uknown DFS master region: %d\n",
|
pr_debug("Ignoring uknown DFS master region: %d\n", dfs_region);
|
||||||
dfs_region);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue