sky2: use debugfs rename
authorStephen Hemminger <shemminger@linux-foundation.org>
Wed, 29 Aug 2007 19:58:11 +0000 (12:58 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:50:51 +0000 (16:50 -0700)
Use debugfs rename to handle device neame changes.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/sky2.c

index a0d75b0..d10af8e 100644 (file)
@@ -3841,42 +3841,34 @@ static int sky2_device_event(struct notifier_block *unused,
                             unsigned long event, void *ptr)
 {
        struct net_device *dev = ptr;
+       struct sky2_port *sky2 = netdev_priv(dev);
 
-       if (dev->open == sky2_up) {
-               struct sky2_port *sky2 = netdev_priv(dev);
+       if (dev->open != sky2_up || !sky2_debug)
+               return NOTIFY_DONE;
 
-               switch(event) {
-               case NETDEV_CHANGENAME:
-                       if (!netif_running(dev))
-                               break;
-                       /* fallthrough */
-               case NETDEV_DOWN:
-               case NETDEV_GOING_DOWN:
-                       if (sky2->debugfs) {
-                               printk(KERN_DEBUG PFX "%s: remove debugfs\n",
-                                      dev->name);
-                               debugfs_remove(sky2->debugfs);
-                               sky2->debugfs = NULL;
-                       }
+       switch(event) {
+       case NETDEV_CHANGENAME:
+               if (sky2->debugfs) {
+                       sky2->debugfs = debugfs_rename(sky2_debug, sky2->debugfs,
+                                                      sky2_debug, dev->name);
+               }
+               break;
 
-                       if (event != NETDEV_CHANGENAME)
-                               break;
-                       /* fallthrough for changename */
-               case NETDEV_UP:
-                       if (sky2_debug) {
-                               struct dentry *d;
-                               d = debugfs_create_file(dev->name, S_IRUGO,
-                                                       sky2_debug, dev,
-                                                       &sky2_debug_fops);
-                               if (d == NULL || IS_ERR(d))
-                                       printk(KERN_INFO PFX
-                                              "%s: debugfs create failed\n",
-                                              dev->name);
-                               else
-                                       sky2->debugfs = d;
-                       }
-                       break;
+       case NETDEV_GOING_DOWN:
+               if (sky2->debugfs) {
+                       printk(KERN_DEBUG PFX "%s: remove debugfs\n",
+                              dev->name);
+                       debugfs_remove(sky2->debugfs);
+                       sky2->debugfs = NULL;
                }
+               break;
+
+       case NETDEV_UP:
+               sky2->debugfs = debugfs_create_file(dev->name, S_IRUGO,
+                                                   sky2_debug, dev,
+                                                   &sky2_debug_fops);
+               if (IS_ERR(sky2->debugfs))
+                       sky2->debugfs = NULL;
        }
 
        return NOTIFY_DONE;