stmmac: debugfs entry name is not be changed when udev rename device name.
Add one notifier for udev changes net device name. Fixes: b6601323ef9e ("net: stmmac: debugfs entry name is not be changed when udev rename") Signed-off-by: Jiping Ma <jiping.ma2@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c101fffcd7
commit
481a7d154c
@ -106,6 +106,7 @@ MODULE_PARM_DESC(chain_mode, "To use chain instead of ring mode");
|
|||||||
static irqreturn_t stmmac_interrupt(int irq, void *dev_id);
|
static irqreturn_t stmmac_interrupt(int irq, void *dev_id);
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_FS
|
#ifdef CONFIG_DEBUG_FS
|
||||||
|
static const struct net_device_ops stmmac_netdev_ops;
|
||||||
static void stmmac_init_fs(struct net_device *dev);
|
static void stmmac_init_fs(struct net_device *dev);
|
||||||
static void stmmac_exit_fs(struct net_device *dev);
|
static void stmmac_exit_fs(struct net_device *dev);
|
||||||
#endif
|
#endif
|
||||||
@ -4256,6 +4257,34 @@ static int stmmac_dma_cap_show(struct seq_file *seq, void *v)
|
|||||||
}
|
}
|
||||||
DEFINE_SHOW_ATTRIBUTE(stmmac_dma_cap);
|
DEFINE_SHOW_ATTRIBUTE(stmmac_dma_cap);
|
||||||
|
|
||||||
|
/* Use network device events to 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);
|
||||||
|
|
||||||
|
if (dev->netdev_ops != &stmmac_netdev_ops)
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
done:
|
||||||
|
return NOTIFY_DONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct notifier_block stmmac_notifier = {
|
||||||
|
.notifier_call = stmmac_device_event,
|
||||||
|
};
|
||||||
|
|
||||||
static void stmmac_init_fs(struct net_device *dev)
|
static void stmmac_init_fs(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct stmmac_priv *priv = netdev_priv(dev);
|
struct stmmac_priv *priv = netdev_priv(dev);
|
||||||
@ -4270,12 +4299,15 @@ static void stmmac_init_fs(struct net_device *dev)
|
|||||||
/* Entry to report the DMA HW features */
|
/* Entry to report the DMA HW features */
|
||||||
debugfs_create_file("dma_cap", 0444, priv->dbgfs_dir, dev,
|
debugfs_create_file("dma_cap", 0444, priv->dbgfs_dir, dev,
|
||||||
&stmmac_dma_cap_fops);
|
&stmmac_dma_cap_fops);
|
||||||
|
|
||||||
|
register_netdevice_notifier(&stmmac_notifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void stmmac_exit_fs(struct net_device *dev)
|
static void stmmac_exit_fs(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct stmmac_priv *priv = netdev_priv(dev);
|
struct stmmac_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
|
unregister_netdevice_notifier(&stmmac_notifier);
|
||||||
debugfs_remove_recursive(priv->dbgfs_dir);
|
debugfs_remove_recursive(priv->dbgfs_dir);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_DEBUG_FS */
|
#endif /* CONFIG_DEBUG_FS */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user