If the regulatory request contains the special "99" unknown-country code, allow a different alpha2 as response. This special alpha2 is used when the real alpha2 is unknown and should be provided by the driver via its get_regd() wiphy callback, as part of the regdomain info. Change-Id: I286e3aed828cabf22292b6fe320fdcfa61f0b951 Signed-off-by: Arik Nemtsov <arikx.nemtsov@xxxxxxxxx> Reviewed-on: https://gerrit.rds.intel.com/32266 Tested-by: IWL Jenkins Reviewed-by: Johannes Berg <johannes.berg@xxxxxxxxx> --- net/wireless/reg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/wireless/reg.c b/net/wireless/reg.c index e2f33d7..c429ec5 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -418,7 +418,8 @@ static bool is_user_regdom_saved(void) return false; /* This would indicate a mistake on the design */ - if (WARN(!is_world_regdom(user_alpha2) && !is_an_alpha2(user_alpha2), + if (WARN(!is_world_regdom(user_alpha2) && !is_an_alpha2(user_alpha2) && + !is_unknown_alpha2(user_alpha2), "Unexpected user alpha2: %c%c\n", user_alpha2[0], user_alpha2[1])) return false; @@ -595,7 +596,8 @@ bool reg_is_valid_request(const char *alpha2) if (!lr || lr->processed) return false; - return alpha2_equal(lr->alpha2, alpha2); + return alpha2_equal(lr->alpha2, alpha2) || + is_unknown_alpha2(lr->alpha2); } static const struct ieee80211_regdomain *reg_get_regdomain(struct wiphy *wiphy) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html