aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/rt2x00/069-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/rt2x00/069-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch')
-rw-r--r--package/kernel/mac80211/patches/rt2x00/069-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch248
1 files changed, 248 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/rt2x00/069-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch b/package/kernel/mac80211/patches/rt2x00/069-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch
new file mode 100644
index 0000000000..d83f9b46c6
--- /dev/null
+++ b/package/kernel/mac80211/patches/rt2x00/069-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch
@@ -0,0 +1,248 @@
+From 1dc244064c47d6df7925ca0895f8365e68d3abd1 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Wed, 3 Jul 2019 13:39:56 +0200
+Subject: [PATCH 10/15] rt2x00: no need to check return value of debugfs_create
+ functions
+
+When calling debugfs functions, there is no need to ever check the
+return value. The function can work or not, but the code logic should
+never do something different based on this.
+
+Because we don't need to save the individual debugfs files and
+directories, remove the local storage of them and just remove the entire
+debugfs directory in a single call, making things a lot simpler.
+
+Cc: Stanislaw Gruszka <sgruszka@redhat.com>
+Cc: Helmut Schaa <helmut.schaa@googlemail.com>
+Cc: Kalle Valo <kvalo@codeaurora.org>
+Cc: "David S. Miller" <davem@davemloft.net>
+Cc: linux-wireless@vger.kernel.org
+Cc: netdev@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2x00debug.c | 136 +++++-------------
+ 1 file changed, 35 insertions(+), 101 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
+@@ -76,26 +76,6 @@ struct rt2x00debug_intf {
+ * - crypto stats file
+ */
+ struct dentry *driver_folder;
+- struct dentry *driver_entry;
+- struct dentry *chipset_entry;
+- struct dentry *dev_flags;
+- struct dentry *cap_flags;
+- struct dentry *restart_hw;
+- struct dentry *register_folder;
+- struct dentry *csr_off_entry;
+- struct dentry *csr_val_entry;
+- struct dentry *eeprom_off_entry;
+- struct dentry *eeprom_val_entry;
+- struct dentry *bbp_off_entry;
+- struct dentry *bbp_val_entry;
+- struct dentry *rf_off_entry;
+- struct dentry *rf_val_entry;
+- struct dentry *rfcsr_off_entry;
+- struct dentry *rfcsr_val_entry;
+- struct dentry *queue_folder;
+- struct dentry *queue_frame_dump_entry;
+- struct dentry *queue_stats_entry;
+- struct dentry *crypto_stats_entry;
+
+ /*
+ * The frame dump file only allows a single reader,
+@@ -607,39 +587,34 @@ static const struct file_operations rt2x
+ .llseek = generic_file_llseek,
+ };
+
+-static struct dentry *rt2x00debug_create_file_driver(const char *name,
+- struct rt2x00debug_intf
+- *intf,
+- struct debugfs_blob_wrapper
+- *blob)
++static void rt2x00debug_create_file_driver(const char *name,
++ struct rt2x00debug_intf *intf,
++ struct debugfs_blob_wrapper *blob)
+ {
+ char *data;
+
+ data = kzalloc(3 * MAX_LINE_LENGTH, GFP_KERNEL);
+ if (!data)
+- return NULL;
++ return;
+
+ blob->data = data;
+ data += sprintf(data, "driver:\t%s\n", intf->rt2x00dev->ops->name);
+ data += sprintf(data, "version:\t%s\n", DRV_VERSION);
+ blob->size = strlen(blob->data);
+
+- return debugfs_create_blob(name, 0400, intf->driver_folder, blob);
++ debugfs_create_blob(name, 0400, intf->driver_folder, blob);
+ }
+
+-static struct dentry *rt2x00debug_create_file_chipset(const char *name,
+- struct rt2x00debug_intf
+- *intf,
+- struct
+- debugfs_blob_wrapper
+- *blob)
++static void rt2x00debug_create_file_chipset(const char *name,
++ struct rt2x00debug_intf *intf,
++ struct debugfs_blob_wrapper *blob)
+ {
+ const struct rt2x00debug *debug = intf->debug;
+ char *data;
+
+ data = kzalloc(9 * MAX_LINE_LENGTH, GFP_KERNEL);
+ if (!data)
+- return NULL;
++ return;
+
+ blob->data = data;
+ data += sprintf(data, "rt chip:\t%04x\n", intf->rt2x00dev->chip.rt);
+@@ -665,13 +640,15 @@ static struct dentry *rt2x00debug_create
+
+ blob->size = strlen(blob->data);
+
+- return debugfs_create_blob(name, 0400, intf->driver_folder, blob);
++ debugfs_create_blob(name, 0400, intf->driver_folder, blob);
+ }
+
+ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
+ {
+ const struct rt2x00debug *debug = rt2x00dev->ops->debugfs;
+ struct rt2x00debug_intf *intf;
++ struct dentry *queue_folder;
++ struct dentry *register_folder;
+
+ intf = kzalloc(sizeof(struct rt2x00debug_intf), GFP_KERNEL);
+ if (!intf) {
+@@ -687,43 +664,27 @@ void rt2x00debug_register(struct rt2x00_
+ debugfs_create_dir(intf->rt2x00dev->ops->name,
+ rt2x00dev->hw->wiphy->debugfsdir);
+
+- intf->driver_entry =
+- rt2x00debug_create_file_driver("driver", intf, &intf->driver_blob);
+-
+- intf->chipset_entry =
+- rt2x00debug_create_file_chipset("chipset",
+- intf, &intf->chipset_blob);
+-
+- intf->dev_flags = debugfs_create_file("dev_flags", 0400,
+- intf->driver_folder, intf,
+- &rt2x00debug_fop_dev_flags);
+-
+- intf->cap_flags = debugfs_create_file("cap_flags", 0400,
+- intf->driver_folder, intf,
+- &rt2x00debug_fop_cap_flags);
+-
+- intf->restart_hw = debugfs_create_file("restart_hw", 0200,
+- intf->driver_folder, intf,
+- &rt2x00debug_restart_hw);
++ rt2x00debug_create_file_driver("driver", intf, &intf->driver_blob);
++ rt2x00debug_create_file_chipset("chipset", intf, &intf->chipset_blob);
++ debugfs_create_file("dev_flags", 0400, intf->driver_folder, intf,
++ &rt2x00debug_fop_dev_flags);
++ debugfs_create_file("cap_flags", 0400, intf->driver_folder, intf,
++ &rt2x00debug_fop_cap_flags);
++ debugfs_create_file("restart_hw", 0200, intf->driver_folder, intf,
++ &rt2x00debug_restart_hw);
+
+- intf->register_folder =
+- debugfs_create_dir("register", intf->driver_folder);
++ register_folder = debugfs_create_dir("register", intf->driver_folder);
+
+ #define RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(__intf, __name) \
+ ({ \
+ if (debug->__name.read) { \
+- (__intf)->__name##_off_entry = \
+- debugfs_create_u32(__stringify(__name) "_offset", \
+- 0600, \
+- (__intf)->register_folder, \
+- &(__intf)->offset_##__name); \
++ debugfs_create_u32(__stringify(__name) "_offset", 0600, \
++ register_folder, \
++ &(__intf)->offset_##__name); \
+ \
+- (__intf)->__name##_val_entry = \
+- debugfs_create_file(__stringify(__name) "_value", \
+- 0600, \
+- (__intf)->register_folder, \
+- (__intf), \
+- &rt2x00debug_fop_##__name); \
++ debugfs_create_file(__stringify(__name) "_value", 0600, \
++ register_folder, (__intf), \
++ &rt2x00debug_fop_##__name); \
+ } \
+ })
+
+@@ -735,26 +696,21 @@ void rt2x00debug_register(struct rt2x00_
+
+ #undef RT2X00DEBUGFS_CREATE_REGISTER_ENTRY
+
+- intf->queue_folder =
+- debugfs_create_dir("queue", intf->driver_folder);
++ queue_folder = debugfs_create_dir("queue", intf->driver_folder);
+
+- intf->queue_frame_dump_entry =
+- debugfs_create_file("dump", 0400, intf->queue_folder,
+- intf, &rt2x00debug_fop_queue_dump);
++ debugfs_create_file("dump", 0400, queue_folder, intf,
++ &rt2x00debug_fop_queue_dump);
+
+ skb_queue_head_init(&intf->frame_dump_skbqueue);
+ init_waitqueue_head(&intf->frame_dump_waitqueue);
+
+- intf->queue_stats_entry =
+- debugfs_create_file("queue", 0400, intf->queue_folder,
+- intf, &rt2x00debug_fop_queue_stats);
++ debugfs_create_file("queue", 0400, queue_folder, intf,
++ &rt2x00debug_fop_queue_stats);
+
+ #ifdef CPTCFG_RT2X00_LIB_CRYPTO
+ if (rt2x00_has_cap_hw_crypto(rt2x00dev))
+- intf->crypto_stats_entry =
+- debugfs_create_file("crypto", 0444, intf->queue_folder,
+- intf,
+- &rt2x00debug_fop_crypto_stats);
++ debugfs_create_file("crypto", 0444, queue_folder, intf,
++ &rt2x00debug_fop_crypto_stats);
+ #endif
+
+ return;
+@@ -769,31 +725,7 @@ void rt2x00debug_deregister(struct rt2x0
+
+ skb_queue_purge(&intf->frame_dump_skbqueue);
+
+-#ifdef CPTCFG_RT2X00_LIB_CRYPTO
+- debugfs_remove(intf->crypto_stats_entry);
+-#endif
+- debugfs_remove(intf->queue_stats_entry);
+- debugfs_remove(intf->queue_frame_dump_entry);
+- debugfs_remove(intf->queue_folder);
+- debugfs_remove(intf->rfcsr_val_entry);
+- debugfs_remove(intf->rfcsr_off_entry);
+- debugfs_remove(intf->rf_val_entry);
+- debugfs_remove(intf->rf_off_entry);
+- debugfs_remove(intf->bbp_val_entry);
+- debugfs_remove(intf->bbp_off_entry);
+- debugfs_remove(intf->eeprom_val_entry);
+- debugfs_remove(intf->eeprom_off_entry);
+- debugfs_remove(intf->csr_val_entry);
+- debugfs_remove(intf->csr_off_entry);
+- debugfs_remove(intf->register_folder);
+- debugfs_remove(intf->dev_flags);
+- debugfs_remove(intf->restart_hw);
+- debugfs_remove(intf->cap_flags);
+- debugfs_remove(intf->chipset_entry);
+- debugfs_remove(intf->driver_entry);
+- debugfs_remove(intf->driver_folder);
+- kfree(intf->chipset_blob.data);
+- kfree(intf->driver_blob.data);
++ debugfs_remove_recursive(intf->driver_folder);
+ kfree(intf);
+
+ rt2x00dev->debugfs_intf = NULL;