This prevents user regulatory changes to be considered prior to previous
pending user, core or driver requests which have not be applied.
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
                if (last_request->initiator == REGDOM_SET_BY_USER &&
                          last_request->intersect)
                        return -EOPNOTSUPP;
+               /* Process user requests only after previous user/driver/core
+                * requests have been processed */
+               if (last_request->initiator == REGDOM_SET_BY_CORE ||
+                   last_request->initiator == REGDOM_SET_BY_DRIVER ||
+                   last_request->initiator == REGDOM_SET_BY_USER) {
+                       if (!alpha2_equal(last_request->alpha2,
+                           cfg80211_regdomain->alpha2))
+                               return -EAGAIN;
+               }
+
                return 0;
        }