Messages in this thread Patch in this message | | | From | Greg Kroah-Hartman <> | Subject | [PATCH 4.19 041/639] cfg80211: regulatory: make initialization more robust | Date | Fri, 24 Jan 2020 10:23:31 +0100 |
| |
From: Johannes Berg <johannes.berg@intel.com>
[ Upstream commit 71e5e886806ee3f8e0c44ed945eb2e4d6659c6e3 ]
Since my change to split out the regulatory init to occur later, any issues during earlier cfg80211_init() or errors during the platform device allocation would lead to crashes later. Make this more robust by checking that the earlier initialization succeeded.
Fixes: d7be102f2945 ("cfg80211: initialize regulatory keys/database later") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org> --- net/wireless/reg.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 64841238df855..5643bdee7198f 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -3870,6 +3870,15 @@ static int __init regulatory_init_db(void) { int err; + /* + * It's possible that - due to other bugs/issues - cfg80211 + * never called regulatory_init() below, or that it failed; + * in that case, don't try to do any further work here as + * it's doomed to lead to crashes. + */ + if (IS_ERR_OR_NULL(reg_pdev)) + return -EINVAL; + err = load_builtin_regdb_keys(); if (err) return err; -- 2.20.1
| |