summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2009-05-13 17:04:42 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-06-15 09:40:02 -0700
commitc1cc5093ab054f5d2c4942d3f5b0bf7b106ce975 (patch)
tree97301b194814b2dba29e94a33d7987cb29d547a0 /net
parentfb6af04fa4363ec3cf4020e28a45dcbe9853620b (diff)
cfg80211: fix race between core hint and driver's custom apply
commit 5078b2e32ad4b1f753b1c837c15892202f753c97 upstream. Its possible for cfg80211 to have scheduled the work and for the global workqueue to not have kicked in prior to a cfg80211 driver's regulatory hint or wiphy_apply_custom_regulatory(). Although this is very unlikely its possible and should fix this race. When this race would happen you are expected to have hit a null pointer dereference panic. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Tested-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'net')
-rw-r--r--net/wireless/reg.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 4f9ff2a6a297..66cebb5f9ff2 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -1497,6 +1497,13 @@ int regulatory_init(void)
"using static definition\n");
#endif
+ /*
+ * This ensures last_request is populated once modules
+ * come swinging in and calling regulatory hints and
+ * wiphy_apply_custom_regulatory().
+ */
+ flush_scheduled_work();
+
return 0;
}