cfg80211: Process all pending regulatory requests/hints
It is possible that there are several regulatory requests
pending, but the processing of the last one does not call
CRDA, and thus the other requests are not handled.
Fix this by rescheduling the work until all requests have
been processed.
Signed-off-by: Ben Rosenfeld <ben.rosenfeld@intel.com>
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index d867103..8c6cf52 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -2159,6 +2159,13 @@
}
reg_process_hint(reg_request);
+
+ lr = get_last_request();
+
+ spin_lock(®_requests_lock);
+ if (!list_empty(®_requests_list) && lr && lr->processed)
+ schedule_work(®_work);
+ spin_unlock(®_requests_lock);
}
/* Processes beacon hints -- this has nothing to do with country IEs */