From: Ben Greear Check for error pointers and warn and assign to NULL in that case so that mac80211 code does not try to use it to create debugfs objects inside the invalid wiphy debugfs inode. Signed-off-by: Ben Greear --- net/wireless/core.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/net/wireless/core.c b/net/wireless/core.c index 23afc250bc10..16cfc249fde6 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -1041,6 +1041,12 @@ int wiphy_register(struct wiphy *wiphy) /* add to debugfs */ rdev->wiphy.debugfsdir = debugfs_create_dir(wiphy_name(&rdev->wiphy), ieee80211_debugfs_dir); + if (IS_ERR(rdev->wiphy.debugfsdir)) { + pr_err("Failed to create wiphy.debugfsdir, rv: %ld phyd: 0x%px\n", + (long)(rdev->wiphy.debugfsdir), ieee80211_debugfs_dir); + rdev->wiphy.debugfsdir = NULL; + } + if (wiphy->n_radio > 0) { int idx; char radio_name[RADIO_DEBUGFSDIR_MAX_LEN]; @@ -1887,6 +1893,11 @@ static int __init cfg80211_init(void) goto out_fail_nl80211; ieee80211_debugfs_dir = debugfs_create_dir("ieee80211", NULL); + if (IS_ERR(ieee80211_debugfs_dir)) { + pr_info("Failed to create ieee80211 debugfs dir, rv: %ld\n", + (long)(ieee80211_debugfs_dir)); + ieee80211_debugfs_dir = NULL; + } err = regulatory_init(); if (err) -- 2.42.0