Commit fea9bced authored by Johannes Berg's avatar Johannes Berg

regulatory: don't test list before iterating

There's no need to test whether a list is
empty or not before iterating.
Acked-by: default avatarLuis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent e9763c3c
...@@ -1104,9 +1104,6 @@ static void wiphy_update_beacon_reg(struct wiphy *wiphy) ...@@ -1104,9 +1104,6 @@ static void wiphy_update_beacon_reg(struct wiphy *wiphy)
assert_cfg80211_lock(); assert_cfg80211_lock();
if (list_empty(&reg_beacon_list))
return;
list_for_each_entry(reg_beacon, &reg_beacon_list, list) { list_for_each_entry(reg_beacon, &reg_beacon_list, list) {
if (!wiphy->bands[reg_beacon->chan.band]) if (!wiphy->bands[reg_beacon->chan.band])
continue; continue;
...@@ -1666,11 +1663,6 @@ static void reg_process_pending_beacon_hints(void) ...@@ -1666,11 +1663,6 @@ static void reg_process_pending_beacon_hints(void)
/* This goes through the _pending_ beacon list */ /* This goes through the _pending_ beacon list */
spin_lock_bh(&reg_pending_beacons_lock); spin_lock_bh(&reg_pending_beacons_lock);
if (list_empty(&reg_pending_beacons)) {
spin_unlock_bh(&reg_pending_beacons_lock);
goto out;
}
list_for_each_entry_safe(pending_beacon, tmp, list_for_each_entry_safe(pending_beacon, tmp,
&reg_pending_beacons, list) { &reg_pending_beacons, list) {
...@@ -1685,7 +1677,6 @@ static void reg_process_pending_beacon_hints(void) ...@@ -1685,7 +1677,6 @@ static void reg_process_pending_beacon_hints(void)
} }
spin_unlock_bh(&reg_pending_beacons_lock); spin_unlock_bh(&reg_pending_beacons_lock);
out:
mutex_unlock(&cfg80211_mutex); mutex_unlock(&cfg80211_mutex);
} }
...@@ -1949,35 +1940,25 @@ static void restore_regulatory_settings(bool reset_user) ...@@ -1949,35 +1940,25 @@ static void restore_regulatory_settings(bool reset_user)
* settings. * settings.
*/ */
spin_lock(&reg_requests_lock); spin_lock(&reg_requests_lock);
if (!list_empty(&reg_requests_list)) { list_for_each_entry_safe(reg_request, tmp, &reg_requests_list, list) {
list_for_each_entry_safe(reg_request, tmp, if (reg_request->initiator != NL80211_REGDOM_SET_BY_USER)
&reg_requests_list, list) {
if (reg_request->initiator !=
NL80211_REGDOM_SET_BY_USER)
continue; continue;
list_move_tail(&reg_request->list, &tmp_reg_req_list); list_move_tail(&reg_request->list, &tmp_reg_req_list);
} }
}
spin_unlock(&reg_requests_lock); spin_unlock(&reg_requests_lock);
/* Clear beacon hints */ /* Clear beacon hints */
spin_lock_bh(&reg_pending_beacons_lock); spin_lock_bh(&reg_pending_beacons_lock);
if (!list_empty(&reg_pending_beacons)) { list_for_each_entry_safe(reg_beacon, btmp, &reg_pending_beacons, list) {
list_for_each_entry_safe(reg_beacon, btmp,
&reg_pending_beacons, list) {
list_del(&reg_beacon->list); list_del(&reg_beacon->list);
kfree(reg_beacon); kfree(reg_beacon);
} }
}
spin_unlock_bh(&reg_pending_beacons_lock); spin_unlock_bh(&reg_pending_beacons_lock);
if (!list_empty(&reg_beacon_list)) { list_for_each_entry_safe(reg_beacon, btmp, &reg_beacon_list, list) {
list_for_each_entry_safe(reg_beacon, btmp,
&reg_beacon_list, list) {
list_del(&reg_beacon->list); list_del(&reg_beacon->list);
kfree(reg_beacon); kfree(reg_beacon);
} }
}
/* First restore to the basic regulatory settings */ /* First restore to the basic regulatory settings */
cfg80211_regdomain = cfg80211_world_regdom; cfg80211_regdomain = cfg80211_world_regdom;
...@@ -2490,31 +2471,22 @@ void /* __init_or_exit */ regulatory_exit(void) ...@@ -2490,31 +2471,22 @@ void /* __init_or_exit */ regulatory_exit(void)
platform_device_unregister(reg_pdev); platform_device_unregister(reg_pdev);
spin_lock_bh(&reg_pending_beacons_lock); spin_lock_bh(&reg_pending_beacons_lock);
if (!list_empty(&reg_pending_beacons)) { list_for_each_entry_safe(reg_beacon, btmp, &reg_pending_beacons, list) {
list_for_each_entry_safe(reg_beacon, btmp,
&reg_pending_beacons, list) {
list_del(&reg_beacon->list); list_del(&reg_beacon->list);
kfree(reg_beacon); kfree(reg_beacon);
} }
}
spin_unlock_bh(&reg_pending_beacons_lock); spin_unlock_bh(&reg_pending_beacons_lock);
if (!list_empty(&reg_beacon_list)) { list_for_each_entry_safe(reg_beacon, btmp, &reg_beacon_list, list) {
list_for_each_entry_safe(reg_beacon, btmp,
&reg_beacon_list, list) {
list_del(&reg_beacon->list); list_del(&reg_beacon->list);
kfree(reg_beacon); kfree(reg_beacon);
} }
}
spin_lock(&reg_requests_lock); spin_lock(&reg_requests_lock);
if (!list_empty(&reg_requests_list)) { list_for_each_entry_safe(reg_request, tmp, &reg_requests_list, list) {
list_for_each_entry_safe(reg_request, tmp,
&reg_requests_list, list) {
list_del(&reg_request->list); list_del(&reg_request->list);
kfree(reg_request); kfree(reg_request);
} }
}
spin_unlock(&reg_requests_lock); spin_unlock(&reg_requests_lock);
mutex_unlock(&reg_mutex); mutex_unlock(&reg_mutex);
......
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