lkml.org 
[lkml]   [2020]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 041/639] cfg80211: regulatory: make initialization more robust
    Date
    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


    \
     
     \ /
      Last update: 2020-01-24 12:01    [W:4.117 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site