]> git.baikalelectronics.ru Git - kernel.git/commit
cfg80211: initialize regulatory keys/database later
authorJohannes Berg <johannes.berg@intel.com>
Thu, 26 Oct 2017 09:24:27 +0000 (11:24 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 20 Nov 2017 15:55:29 +0000 (16:55 +0100)
commit7972e523ef86a4850eeb6f279340a5bab6afafa6
tree22f632b38065929c1bb2e8c23c94202b2c5d95f9
parentc0a13f3e15a6ccb208798ed5f4fe05cef412ab72
cfg80211: initialize regulatory keys/database later

When cfg80211 is built as a module, everything is fine, and we
can keep the code as is; in fact, we have to, because there can
only be a single module_init().

When cfg80211 is built-in, however, it needs to initialize
before drivers (device_initcall/module_init), and thus used to
be at subsys_initcall(). I'd moved it to fs_initcall() earlier,
where it can remain. However, this is still too early because at
that point the key infrastructure hasn't been initialized yet,
so X.509 certificates can't be parsed yet.

To work around this problem, load the regdb keys only later in
a late_initcall(), at which point the necessary infrastructure
has been initialized.

Fixes: a3b00ed5a018 ("cfg80211: implement regdb signature checking")
Reported-by: Xiaolong Ye <xiaolong.ye@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/reg.c