Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cee0bec5 authored by Dmitry Shmidt's avatar Dmitry Shmidt Committed by John W. Linville
Browse files

wireless: Protect regdomain change by mutex

parent b423db5b
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1830,6 +1830,7 @@ static void restore_custom_reg_settings(struct wiphy *wiphy)
static void restore_regulatory_settings(bool reset_user)
{
	char alpha2[2];
	char world_alpha2[2];
	struct reg_beacon *reg_beacon, *btmp;
	struct regulatory_request *reg_request, *tmp;
	LIST_HEAD(tmp_reg_req_list);
@@ -1881,6 +1882,8 @@ static void restore_regulatory_settings(bool reset_user)

	/* First restore to the basic regulatory settings */
	cfg80211_regdomain = cfg80211_world_regdom;
	world_alpha2[0] = cfg80211_regdomain->alpha2[0];
	world_alpha2[1] = cfg80211_regdomain->alpha2[1];

	list_for_each_entry(rdev, &cfg80211_rdev_list, list) {
		if (rdev->wiphy.flags & WIPHY_FLAG_CUSTOM_REGULATORY)
@@ -1890,7 +1893,7 @@ static void restore_regulatory_settings(bool reset_user)
	mutex_unlock(&reg_mutex);
	mutex_unlock(&cfg80211_mutex);

	regulatory_hint_core(cfg80211_regdomain->alpha2);
	regulatory_hint_core(world_alpha2);

	/*
	 * This restores the ieee80211_regdom module parameter