{
        if (call_crda(request->alpha2))
                return REG_REQ_IGNORE;
+
+       queue_delayed_work(system_power_efficient_wq,
+                          ®_timeout, msecs_to_jiffies(3142));
        return REG_REQ_OK;
 }
 
                need_more_processing = true;
        spin_unlock(®_requests_lock);
 
-       if (lr->initiator == NL80211_REGDOM_SET_BY_USER)
-               cancel_delayed_work(®_timeout);
+       cancel_delayed_work(®_timeout);
 
        if (need_more_processing)
                schedule_work(®_work);
                if (treatment == REG_REQ_IGNORE ||
                    treatment == REG_REQ_ALREADY_SET)
                        return;
-               queue_delayed_work(system_power_efficient_wq,
-                                  ®_timeout, msecs_to_jiffies(3142));
                return;
        case NL80211_REGDOM_SET_BY_DRIVER:
                if (!wiphy)
        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);
        struct cfg80211_registered_device *rdev;
 
         * settings.
         */
        spin_lock(®_requests_lock);
-       list_for_each_entry_safe(reg_request, tmp, ®_requests_list, list) {
-               if (reg_request->initiator != NL80211_REGDOM_SET_BY_USER)
-                       continue;
-               list_move_tail(®_request->list, &tmp_reg_req_list);
-       }
+       list_splice_tail_init(®_requests_list, &tmp_reg_req_list);
        spin_unlock(®_requests_lock);
 
        /* Clear beacon hints */