Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfa3fa40 authored by Zhaolei's avatar Zhaolei Committed by John W. Linville
Browse files

Fix debugfs_create_*'s error checking method for wireless/rt2x00/



debugfs_create_*() returns NULL if an error occurs, returns -ENODEV
when debugfs is not enabled in the kernel.

Signed-off-by: default avatarZhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9b24001d
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -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);