diff mbox

cfg80211: Process all pending regulatory requests/hints

Message ID 1426167454-7070-1-git-send-email-ilan.peer@intel.com (mailing list archive)
State Accepted
Delegated to: Johannes Berg
Headers show

Commit Message

Peer, Ilan March 12, 2015, 1:37 p.m. UTC
From: Ben <ben.rosenfeld@intel.com>

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>
---
 net/wireless/reg.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Johannes Berg March 17, 2015, 10:03 a.m. UTC | #1
On Thu, 2015-03-12 at 09:37 -0400, Ilan Peer wrote:
> From: Ben <ben.rosenfeld@intel.com>
> 
> 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.

Applied.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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 @@  static void reg_process_pending_hints(void)
 	}
 
 	reg_process_hint(reg_request);
+
+	lr = get_last_request();
+
+	spin_lock(&reg_requests_lock);
+	if (!list_empty(&reg_requests_list) && lr && lr->processed)
+		schedule_work(&reg_work);
+	spin_unlock(&reg_requests_lock);
 }
 
 /* Processes beacon hints -- this has nothing to do with country IEs */