Fix debugfs_create_*'s error checking method for wireless/rt2x00/
PATCH 1/1 Fix debugfs_create_*'s error checking method for wireless/rt2x00/
Hi,
debugfs_create_*() returns NULL if an error occurs, returns -ENODEV when debugfs is not enabled in the kernel.
Signed-off-by Zhao Lei <[email protected]>
--- drivers/net/wireless/rt2x00/rt2x00debug.c | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-)
drivers/net/wireless/rt2x00/rt2x00debug.c +12 -9
@@ -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);
-- 1.5.5.3
Quoted 6 lines · Zhaolei
Hi,
debugfs_create_*() returns NULL if an error occurs, returns
-ENODEVwhen debugfs is not enabled in the kernel.Signed-off-by Zhao Lei <[email protected]>
Looks good. Thanks.
John, could you pull this into wireless-testing? Thanks!
Signed-off-by Ivo van Doorn <[email protected]>
Quoted 89 lines
--- drivers/net/wireless/rt2x00/rt2x00debug.c | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-)drivers/net/wireless/rt2x00/rt2x00debug.c +12
-11@@ -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); -- 1.5.5.3 --To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html