In case of sysfs failure, don't let device be brought up.
It can be cleared by unregister_netdevice so module can be unloaded
normally.

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>

--- sky2-2.6.17.orig/net/core/dev.c     2006-04-21 12:21:45.000000000 -0700
+++ sky2-2.6.17/net/core/dev.c  2006-04-21 12:46:48.000000000 -0700
@@ -3043,10 +3043,17 @@
 
                switch(dev->reg_state) {
                case NETREG_REGISTERING:
+                       /* Can't do proper error handling here because
+                        * this is a delayed call after register_netdevice
+                        * so no way to tell device driver what is wrong.
+                        */
                        err = netdev_register_sysfs(dev);
-                       if (err)
+                       if (err) {
                                printk(KERN_ERR "%s: failed sysfs registration 
(%d)\n",
                                       dev->name, err);
+                               /* Don't let device be brought up */
+                               clear_bit(__LINK_STATE_PRESENT, &dev->state);
+                       }
                        dev->reg_state = NETREG_REGISTERED;
                        break;
 
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to