cfg80211: avoid flushing the global workqueue for core reg hints
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Sat, 30 Jan 2010 00:58:56 +0000 (19:58 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 1 Feb 2010 20:40:05 +0000 (15:40 -0500)
When cfg80211 starts it will send a core regulatory hint. This is
sent to the global workqueue but we force processing of it by
flushing the global workqueue. The flushing was done since
cfg80211 needs last_request to always be populated.

Avoid flushing the global workqueue by processing the work
required immediately instead of putting it into a linked
list and processing it after the flush.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/reg.c

index 5f8071de7950d5f769d2d8a5a0f8179101f95bb3..5dcda28b6f0499983cd70518349ddd43cb874a36 100644 (file)
@@ -1920,14 +1920,12 @@ static int regulatory_hint_core(const char *alpha2)
        request->alpha2[1] = alpha2[1];
        request->initiator = NL80211_REGDOM_SET_BY_CORE;
 
-       queue_regulatory_request(request);
-
        /*
         * This ensures last_request is populated once modules
         * come swinging in and calling regulatory hints and
         * wiphy_apply_custom_regulatory().
         */
-       flush_scheduled_work();
+       reg_process_hint(request);
 
        return 0;
 }