Commit 480908a7 authored by Johannes Berg's avatar Johannes Berg

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: default avatarJohannes Berg <johannes.berg@intel.com>
parent fd453d3c
...@@ -2026,14 +2026,13 @@ reg_process_hint_driver(struct wiphy *wiphy, ...@@ -2026,14 +2026,13 @@ reg_process_hint_driver(struct wiphy *wiphy,
break; break;
case REG_REQ_IGNORE: case REG_REQ_IGNORE:
reg_free_request(driver_request); reg_free_request(driver_request);
return treatment; return REG_REQ_OK;
case REG_REQ_INTERSECT: case REG_REQ_INTERSECT:
/* fall through */
case REG_REQ_ALREADY_SET: case REG_REQ_ALREADY_SET:
regd = reg_copy_regd(get_cfg80211_regdom()); regd = reg_copy_regd(get_cfg80211_regdom());
if (IS_ERR(regd)) { if (IS_ERR(regd)) {
reg_free_request(driver_request); reg_free_request(driver_request);
return REG_REQ_IGNORE; return REG_REQ_OK;
} }
tmp = get_wiphy_regdom(wiphy); tmp = get_wiphy_regdom(wiphy);
...@@ -2054,7 +2053,7 @@ reg_process_hint_driver(struct wiphy *wiphy, ...@@ -2054,7 +2053,7 @@ reg_process_hint_driver(struct wiphy *wiphy,
nl80211_send_reg_change_event(driver_request); nl80211_send_reg_change_event(driver_request);
reg_update_last_request(driver_request); reg_update_last_request(driver_request);
reg_set_request_processed(); reg_set_request_processed();
return treatment; return REG_REQ_ALREADY_SET;
} }
if (reg_query_database(driver_request)) if (reg_query_database(driver_request))
...@@ -2128,10 +2127,10 @@ reg_process_hint_country_ie(struct wiphy *wiphy, ...@@ -2128,10 +2127,10 @@ reg_process_hint_country_ie(struct wiphy *wiphy,
case REG_REQ_OK: case REG_REQ_OK:
break; break;
case REG_REQ_IGNORE: case REG_REQ_IGNORE:
/* fall through */ return REG_REQ_OK;
case REG_REQ_ALREADY_SET: case REG_REQ_ALREADY_SET:
reg_free_request(country_ie_request); reg_free_request(country_ie_request);
return treatment; return REG_REQ_ALREADY_SET;
case REG_REQ_INTERSECT: case REG_REQ_INTERSECT:
reg_free_request(country_ie_request); reg_free_request(country_ie_request);
/* /*
...@@ -2139,7 +2138,7 @@ reg_process_hint_country_ie(struct wiphy *wiphy, ...@@ -2139,7 +2138,7 @@ reg_process_hint_country_ie(struct wiphy *wiphy,
* ever want to support it for this case. * ever want to support it for this case.
*/ */
WARN_ONCE(1, "Unexpected intersection for country IEs"); WARN_ONCE(1, "Unexpected intersection for country IEs");
return REG_REQ_IGNORE; return REG_REQ_OK;
} }
country_ie_request->intersect = false; country_ie_request->intersect = false;
...@@ -2184,6 +2183,9 @@ static void reg_process_hint(struct regulatory_request *reg_request) ...@@ -2184,6 +2183,9 @@ static void reg_process_hint(struct regulatory_request *reg_request)
goto out_free; goto out_free;
} }
WARN(treatment != REG_REQ_OK && treatment != REG_REQ_ALREADY_SET,
"unexpected treatment value %d\n", treatment);
/* This is required so that the orig_* parameters are saved. /* This is required so that the orig_* parameters are saved.
* NOTE: treatment must be set for any case that reaches here! * NOTE: treatment must be set for any case that reaches here!
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment