diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2009-05-13 17:04:42 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-06-15 09:40:02 -0700 |
commit | c1cc5093ab054f5d2c4942d3f5b0bf7b106ce975 (patch) | |
tree | 97301b194814b2dba29e94a33d7987cb29d547a0 /net | |
parent | fb6af04fa4363ec3cf4020e28a45dcbe9853620b (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.c | 7 |
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; } |