cfg80211: fix debugfs error handling
Johannes Berg [Wed, 8 Oct 2008 08:23:48 +0000 (10:23 +0200)]
If something goes wrong creating the debugfs dir or when
debugfs is not compiled in, the current code might lead to
trouble; make it more robust.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

net/wireless/core.c

index 24fdd4c..5031db7 100644 (file)
@@ -184,7 +184,8 @@ int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
        if (result)
                goto out_unlock;
 
-       if (!debugfs_rename(rdev->wiphy.debugfsdir->d_parent,
+       if (rdev->wiphy.debugfsdir &&
+           !debugfs_rename(rdev->wiphy.debugfsdir->d_parent,
                            rdev->wiphy.debugfsdir,
                            rdev->wiphy.debugfsdir->d_parent,
                            newname))
@@ -317,6 +318,8 @@ int wiphy_register(struct wiphy *wiphy)
        drv->wiphy.debugfsdir =
                debugfs_create_dir(wiphy_name(&drv->wiphy),
                                   ieee80211_debugfs_dir);
+       if (IS_ERR(drv->wiphy.debugfsdir))
+               drv->wiphy.debugfsdir = NULL;
 
        res = 0;
 out_unlock: