diff options
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.patch | 248 |
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; |