Messages in this thread Patch in this message | | | From | Jiping Ma <> | Subject | [PATCH] stmmac: debugfs entry name is not be changed when udev rename device name. | Date | Tue, 31 Dec 2019 10:03:02 +0800 |
| |
Add one notifier for udev changes net device name.
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com> --- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index b14f46a57154..c1c877bb4421 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -4038,6 +4038,40 @@ static int stmmac_dma_cap_show(struct seq_file *seq, void *v) } DEFINE_SHOW_ATTRIBUTE(stmmac_dma_cap); +/** + * Use network device events to create/remove/rename + * debugfs file entries + */ +static int stmmac_device_event(struct notifier_block *unused, + unsigned long event, void *ptr) +{ + struct net_device *dev = netdev_notifier_info_to_dev(ptr); + struct stmmac_priv *priv = netdev_priv(dev); + + switch (event) { + case NETDEV_CHANGENAME: + if (priv->dbgfs_dir) + priv->dbgfs_dir = debugfs_rename(stmmac_fs_dir, + priv->dbgfs_dir, + stmmac_fs_dir, + dev->name); + break; + + case NETDEV_GOING_DOWN: + break; + + case NETDEV_UP: + break; + } + +done: + return NOTIFY_DONE; +} + +static struct notifier_block stmmac_notifier = { + .notifier_call = stmmac_device_event, +}; + static int stmmac_init_fs(struct net_device *dev) { struct stmmac_priv *priv = netdev_priv(dev); @@ -4050,7 +4084,6 @@ static int stmmac_init_fs(struct net_device *dev) return -ENOMEM; } - /* Entry to report DMA RX/TX rings */ priv->dbgfs_rings_status = debugfs_create_file("descriptors_status", 0444, @@ -4076,6 +4109,8 @@ static int stmmac_init_fs(struct net_device *dev) return -ENOMEM; } + register_netdevice_notifier(&stmmac_notifier); + return 0; } @@ -4083,6 +4118,7 @@ static void stmmac_exit_fs(struct net_device *dev) { struct stmmac_priv *priv = netdev_priv(dev); + unregister_netdevice_notifier(&stmmac_notifier); debugfs_remove_recursive(priv->dbgfs_dir); } #endif /* CONFIG_DEBUG_FS */ -- 2.23.0
| |