diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 130cfdaa7f4cf76e732b773d69c9087262c785c6..cd50bb56c7e75599c970e59f03a07cab5f7fa787 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -2200,6 +2200,8 @@ static int __set_regdom(const struct ieee80211_regdomain *rd)
 		return -EINVAL;
 
 	if (is_world_regdom(rd->alpha2)) {
+		if (lr->initiator != NL80211_REGDOM_SET_BY_CORE)
+			return -EINVAL;
 		update_world_regdomain(rd);
 		return 0;
 	}