Fix debugfs_create_*'s error checking method for wireless/rt2x00/
authorZhaolei <zhaolei@cn.fujitsu.com>
Wed, 22 Oct 2008 09:07:25 +0000 (17:07 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 31 Oct 2008 23:00:45 +0000 (19:00 -0400)
debugfs_create_*() returns NULL if an error occurs, returns -ENODEV
when debugfs is not enabled in the kernel.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00debug.c

index 96bc0a0336f0a7f6c929ca94129a4b28bdf526c7..a31418a700c1f6de6e6fe958ed4c48f0cdc43c53 100644 (file)
@@ -587,29 +587,29 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
        intf->driver_folder =
            debugfs_create_dir(intf->rt2x00dev->ops->name,
                               rt2x00dev->hw->wiphy->debugfsdir);
-       if (IS_ERR(intf->driver_folder))
+       if (IS_ERR(intf->driver_folder) || !intf->driver_folder)
                goto exit;
 
        intf->driver_entry =
            rt2x00debug_create_file_driver("driver", intf, &intf->driver_blob);
-       if (IS_ERR(intf->driver_entry))
+       if (IS_ERR(intf->driver_entry) || !intf->driver_entry)
                goto exit;
 
        intf->chipset_entry =
            rt2x00debug_create_file_chipset("chipset",
                                            intf, &intf->chipset_blob);
-       if (IS_ERR(intf->chipset_entry))
+       if (IS_ERR(intf->chipset_entry) || !intf->chipset_entry)
                goto exit;
 
        intf->dev_flags = debugfs_create_file("dev_flags", S_IRUSR,
                                              intf->driver_folder, intf,
                                              &rt2x00debug_fop_dev_flags);
-       if (IS_ERR(intf->dev_flags))
+       if (IS_ERR(intf->dev_flags) || !intf->dev_flags)
                goto exit;
 
        intf->register_folder =
            debugfs_create_dir("register", intf->driver_folder);
-       if (IS_ERR(intf->register_folder))
+       if (IS_ERR(intf->register_folder) || !intf->register_folder)
                goto exit;
 
 #define RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(__intf, __name)    \
@@ -619,7 +619,8 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
                               S_IRUSR | S_IWUSR,               \
                               (__intf)->register_folder,       \
                               &(__intf)->offset_##__name);     \
-       if (IS_ERR((__intf)->__name##_off_entry))               \
+       if (IS_ERR((__intf)->__name##_off_entry)                \
+                       || !(__intf)->__name##_off_entry)       \
                goto exit;                                      \
                                                                \
        (__intf)->__name##_val_entry =                          \
@@ -627,7 +628,8 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
                                S_IRUSR | S_IWUSR,              \
                                (__intf)->register_folder,      \
                                (__intf), &rt2x00debug_fop_##__name);\
-       if (IS_ERR((__intf)->__name##_val_entry))               \
+       if (IS_ERR((__intf)->__name##_val_entry)                \
+                       || !(__intf)->__name##_val_entry)       \
                goto exit;                                      \
 })
 
@@ -640,13 +642,14 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
 
        intf->queue_folder =
            debugfs_create_dir("queue", intf->driver_folder);
-       if (IS_ERR(intf->queue_folder))
+       if (IS_ERR(intf->queue_folder) || !intf->queue_folder)
                goto exit;
 
        intf->queue_frame_dump_entry =
            debugfs_create_file("dump", S_IRUSR, intf->queue_folder,
                                intf, &rt2x00debug_fop_queue_dump);
-       if (IS_ERR(intf->queue_frame_dump_entry))
+       if (IS_ERR(intf->queue_frame_dump_entry)
+               || !intf->queue_frame_dump_entry)
                goto exit;
 
        skb_queue_head_init(&intf->frame_dump_skbqueue);