aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2015-10-15 06:58:58 -0400
committerJohannes Berg <johannes.berg@intel.com>2015-10-16 03:15:44 -0400
commit480908a7ec5f2d37d5610b7d9bc48a38f2093876 (patch)
tree2fd754b7644152536f6372842ed899aada0606de
parentfd453d3c53eed367f18a0c75bd855cdfc9d6d416 (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.c16
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 */