On Sat, 2019-03-30 at 10:31 +0100, Greg Kroah-Hartman wrote: > debugfs can now report an error code if something went wrong instead > of > just NULL. So if the return value is to be used as a "real" dentry, > it > needs to be checked if it is an error before dereferencing it. > > This is now happening because of ff9fb72bc077 ("debugfs: return error > values, not NULL"). If multiple iwlwifi devices are in the system, > this > can cause problems when the driver attempts to create the main > debugfs > directory again. Later on in the code we fail horribly by trying to > dereference a pointer that is an error value. > > Reported-by: Laura Abbott <labbott@xxxxxxxxxx> > Cc: Johannes Berg <johannes.berg@xxxxxxxxx> > Cc: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> > Cc: Luca Coelho <luciano.coelho@xxxxxxxxx> > Cc: Intel Linux Wireless <linuxwifi@xxxxxxxxx> > Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx> > Cc: stable <stable@xxxxxxxxxxxxxxx> # 5.0 > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > > diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c > b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c > index 2453ceabf00d..6925527d8457 100644 > --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c > +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c > @@ -774,8 +774,7 @@ void iwl_mvm_vif_dbgfs_register(struct iwl_mvm > *mvm, struct ieee80211_vif *vif) > return; > > mvmvif->dbgfs_dir = debugfs_create_dir("iwlmvm", dbgfs_dir); > - > - if (!mvmvif->dbgfs_dir) { > + if (IS_ERR_OR_NULL(mvmvif->dbgfs_dir)) { > IWL_ERR(mvm, "Failed to create debugfs directory under > %pd\n", > dbgfs_dir); > return; Thanks! I've applied this internally and will send upstream for v5.1- rc* following our normal upstreaming process. I added the other Reported-by that Laura asked for and added "mvm:" to the subject. -- Cheers, Luca.