diff options
author | Johannes Berg <johannes.berg@intel.com> | 2015-10-15 06:58:58 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-10-16 03:15:44 -0400 |
commit | 480908a7ec5f2d37d5610b7d9bc48a38f2093876 (patch) | |
tree | 2fd754b7644152536f6372842ed899aada0606de | |
parent | fd453d3c53eed367f18a0c75bd855cdfc9d6d416 (diff) |
cfg80211: reg: clarify 'treatment' handling in reg_process_hint()
This function can only deal with treatment values OK and ALREADY_SET
so make the callees not return anything else and warn if they do.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/wireless/reg.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 85cad884a6e5..a95fc3abb8e1 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
@@ -2026,14 +2026,13 @@ reg_process_hint_driver(struct wiphy *wiphy, | |||
2026 | break; | 2026 | break; |
2027 | case REG_REQ_IGNORE: | 2027 | case REG_REQ_IGNORE: |
2028 | reg_free_request(driver_request); | 2028 | reg_free_request(driver_request); |
2029 | return treatment; | 2029 | return REG_REQ_OK; |
2030 | case REG_REQ_INTERSECT: | 2030 | case REG_REQ_INTERSECT: |
2031 | /* fall through */ | ||
2032 | case REG_REQ_ALREADY_SET: | 2031 | case REG_REQ_ALREADY_SET: |
2033 | regd = reg_copy_regd(get_cfg80211_regdom()); | 2032 | regd = reg_copy_regd(get_cfg80211_regdom()); |
2034 | if (IS_ERR(regd)) { | 2033 | if (IS_ERR(regd)) { |
2035 | reg_free_request(driver_request); | 2034 | reg_free_request(driver_request); |
2036 | return REG_REQ_IGNORE; | 2035 | return REG_REQ_OK; |
2037 | } | 2036 | } |
2038 | 2037 | ||
2039 | tmp = get_wiphy_regdom(wiphy); | 2038 | tmp = get_wiphy_regdom(wiphy); |
@@ -2054,7 +2053,7 @@ reg_process_hint_driver(struct wiphy *wiphy, | |||
2054 | nl80211_send_reg_change_event(driver_request); | 2053 | nl80211_send_reg_change_event(driver_request); |
2055 | reg_update_last_request(driver_request); | 2054 | reg_update_last_request(driver_request); |
2056 | reg_set_request_processed(); | 2055 | reg_set_request_processed(); |
2057 | return treatment; | 2056 | return REG_REQ_ALREADY_SET; |
2058 | } | 2057 | } |
2059 | 2058 | ||
2060 | if (reg_query_database(driver_request)) | 2059 | if (reg_query_database(driver_request)) |
@@ -2128,10 +2127,10 @@ reg_process_hint_country_ie(struct wiphy *wiphy, | |||
2128 | case REG_REQ_OK: | 2127 | case REG_REQ_OK: |
2129 | break; | 2128 | break; |
2130 | case REG_REQ_IGNORE: | 2129 | case REG_REQ_IGNORE: |
2131 | /* fall through */ | 2130 | return REG_REQ_OK; |
2132 | case REG_REQ_ALREADY_SET: | 2131 | case REG_REQ_ALREADY_SET: |
2133 | reg_free_request(country_ie_request); | 2132 | reg_free_request(country_ie_request); |
2134 | return treatment; | 2133 | return REG_REQ_ALREADY_SET; |
2135 | case REG_REQ_INTERSECT: | 2134 | case REG_REQ_INTERSECT: |
2136 | reg_free_request(country_ie_request); | 2135 | reg_free_request(country_ie_request); |
2137 | /* | 2136 | /* |
@@ -2139,7 +2138,7 @@ reg_process_hint_country_ie(struct wiphy *wiphy, | |||
2139 | * ever want to support it for this case. | 2138 | * ever want to support it for this case. |
2140 | */ | 2139 | */ |
2141 | WARN_ONCE(1, "Unexpected intersection for country IEs"); | 2140 | WARN_ONCE(1, "Unexpected intersection for country IEs"); |
2142 | return REG_REQ_IGNORE; | 2141 | return REG_REQ_OK; |
2143 | } | 2142 | } |
2144 | 2143 | ||
2145 | country_ie_request->intersect = false; | 2144 | country_ie_request->intersect = false; |
@@ -2184,6 +2183,9 @@ static void reg_process_hint(struct regulatory_request *reg_request) | |||
2184 | goto out_free; | 2183 | goto out_free; |
2185 | } | 2184 | } |
2186 | 2185 | ||
2186 | WARN(treatment != REG_REQ_OK && treatment != REG_REQ_ALREADY_SET, | ||
2187 | "unexpected treatment value %d\n", treatment); | ||
2188 | |||
2187 | /* This is required so that the orig_* parameters are saved. | 2189 | /* This is required so that the orig_* parameters are saved. |
2188 | * NOTE: treatment must be set for any case that reaches here! | 2190 | * NOTE: treatment must be set for any case that reaches here! |
2189 | */ | 2191 | */ |