[PATCH] net/wireless: add debugfs exit function

Bernard Zhao posted 1 patch 2 years, 5 months ago
drivers/net/wireless/mediatek/mt7601u/debugfs.c | 9 +++++++--
drivers/net/wireless/mediatek/mt7601u/init.c    | 1 +
drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 1 +
3 files changed, 9 insertions(+), 2 deletions(-)
[PATCH] net/wireless: add debugfs exit function
Posted by Bernard Zhao 2 years, 5 months ago
This patch add exit debugfs function to mt7601u.
Debugfs need to be cleanup when module is unloaded or load fail.

Signed-off-by: Bernard Zhao <zhaojunkui2008@126.com>
---
 drivers/net/wireless/mediatek/mt7601u/debugfs.c | 9 +++++++--
 drivers/net/wireless/mediatek/mt7601u/init.c    | 1 +
 drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 1 +
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt7601u/debugfs.c b/drivers/net/wireless/mediatek/mt7601u/debugfs.c
index 20669eacb66e..5ae27aae685b 100644
--- a/drivers/net/wireless/mediatek/mt7601u/debugfs.c
+++ b/drivers/net/wireless/mediatek/mt7601u/debugfs.c
@@ -9,6 +9,8 @@
 #include "mt7601u.h"
 #include "eeprom.h"
 
+static struct dentry *dir;
+
 static int
 mt76_reg_set(void *data, u64 val)
 {
@@ -124,8 +126,6 @@ DEFINE_SHOW_ATTRIBUTE(mt7601u_eeprom_param);
 
 void mt7601u_init_debugfs(struct mt7601u_dev *dev)
 {
-	struct dentry *dir;
-
 	dir = debugfs_create_dir("mt7601u", dev->hw->wiphy->debugfsdir);
 	if (!dir)
 		return;
@@ -138,3 +138,8 @@ void mt7601u_init_debugfs(struct mt7601u_dev *dev)
 	debugfs_create_file("ampdu_stat", 0400, dir, dev, &mt7601u_ampdu_stat_fops);
 	debugfs_create_file("eeprom_param", 0400, dir, dev, &mt7601u_eeprom_param_fops);
 }
+
+void mt7601u_exit_debugfs(struct mt7601u_dev *dev)
+{
+	debugfs_remove(dir);
+}
diff --git a/drivers/net/wireless/mediatek/mt7601u/init.c b/drivers/net/wireless/mediatek/mt7601u/init.c
index 5d9e952b2966..eacdd5785fa6 100644
--- a/drivers/net/wireless/mediatek/mt7601u/init.c
+++ b/drivers/net/wireless/mediatek/mt7601u/init.c
@@ -427,6 +427,7 @@ void mt7601u_cleanup(struct mt7601u_dev *dev)
 	mt7601u_stop_hardware(dev);
 	mt7601u_dma_cleanup(dev);
 	mt7601u_mcu_cmd_deinit(dev);
+	mt7601u_exit_debugfs(dev);
 }
 
 struct mt7601u_dev *mt7601u_alloc_device(struct device *pdev)
diff --git a/drivers/net/wireless/mediatek/mt7601u/mt7601u.h b/drivers/net/wireless/mediatek/mt7601u/mt7601u.h
index a122f1dd38f6..a77bfef0d39f 100644
--- a/drivers/net/wireless/mediatek/mt7601u/mt7601u.h
+++ b/drivers/net/wireless/mediatek/mt7601u/mt7601u.h
@@ -279,6 +279,7 @@ struct mt7601u_rxwi;
 extern const struct ieee80211_ops mt7601u_ops;
 
 void mt7601u_init_debugfs(struct mt7601u_dev *dev);
+void mt7601u_exit_debugfs(struct mt7601u_dev *dev);
 
 u32 mt7601u_rr(struct mt7601u_dev *dev, u32 offset);
 void mt7601u_wr(struct mt7601u_dev *dev, u32 offset, u32 val);
-- 
2.33.1
Re: [PATCH] net/wireless: add debugfs exit function
Posted by Kalle Valo 2 years, 5 months ago
Bernard Zhao <zhaojunkui2008@126.com> writes:

> This patch add exit debugfs function to mt7601u.
> Debugfs need to be cleanup when module is unloaded or load fail.

"load fail"? Please be more specific, are you saying that the second
module load fails or what?

>  drivers/net/wireless/mediatek/mt7601u/debugfs.c | 9 +++++++--
>  drivers/net/wireless/mediatek/mt7601u/init.c    | 1 +
>  drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 1 +

The title should be:

mt7601u: add debugfs exit function

> --- a/drivers/net/wireless/mediatek/mt7601u/debugfs.c
> +++ b/drivers/net/wireless/mediatek/mt7601u/debugfs.c
> @@ -9,6 +9,8 @@
>  #include "mt7601u.h"
>  #include "eeprom.h"
>  
> +static struct dentry *dir;

How will this work when there are multiple mt7601u devices? Because of
that, avoid using non-const static variables.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Re:Re: [PATCH] net/wireless: add debugfs exit function
Posted by z 2 years, 5 months ago
Hi Kalle Valo:

>-----邮件原件-----
>发件人: Kalle Valo <kvalo@kernel.org> 
>发送时间: 2022年4月22日 13:57
>收件人: Bernard Zhao <zhaojunkui2008@126.com>
>抄送: Jakub Kicinski <kubakici@wp.pl>; David S. Miller <davem@davemloft.net>; Paolo Abeni <pabeni@redhat.com>; Matthias Brugger <matthias.bgg@gmail.com>; linux-wireless@vger.kernel.org; netdev@vger.kernel.org; >linux-arm-kernel@lists.infradead.org; linux-mediatek@lists.infradead.org; linux-kernel@vger.kernel.org; 赵军奎 <bernard@vivo.com>
>主题: Re: [PATCH] net/wireless: add debugfs exit function

>Bernard Zhao <zhaojunkui2008@126.com> writes:

>> This patch add exit debugfs function to mt7601u.
>> Debugfs need to be cleanup when module is unloaded or load fail.

>"load fail"? Please be more specific, are you saying that the second module load fails or what?
For this part, there are two cases:
First when mt7601u is loaded, in function mt7601u_probe, if function mt7601u_probe run into error lable err_hw, mt7601u_cleanup didn`t cleanup the debugfs node.
Second when the module disconnect, in function mt7601u_disconnect, mt7601u_cleanup didn`t cleanup the debugfs node.
I think these are the mt7601u unloaded or load fail cases, but both with no debugfs cleanup work.

>>  drivers/net/wireless/mediatek/mt7601u/debugfs.c | 9 +++++++--
>>  drivers/net/wireless/mediatek/mt7601u/init.c    | 1 +
>>  drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 1 +

>The title should be:

>mt7601u: add debugfs exit function
Got it, thanks!

>> --- a/drivers/net/wireless/mediatek/mt7601u/debugfs.c
>> +++ b/drivers/net/wireless/mediatek/mt7601u/debugfs.c
>> @@ -9,6 +9,8 @@
>>  #include "mt7601u.h"
>>  #include "eeprom.h"
>>  
>> +static struct dentry *dir;

>How will this work when there are multiple mt7601u devices? Because of that, avoid using non-const static variables.
Sorry for missing this part, I understand that the better way is to manage it in the struct of the matched device, I would fix this in the next patch.
Thank you very much!

BR//Bernard

>--
>https://patchwork.kernel.org/project/linux-wireless/list/

>https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches