--- net/core/dev.old.c Mon Jun 11 20:00:42 2001 +++ net/core/dev.c Mon Jun 11 19:51:55 2001 @@ -20,6 +20,9 @@ * Pekka Riikonen * * Changes: + * D.J. Barrow : Fixed net_dev_init calling dev_hold & setting + * The dev->refcnt to 2 if register_netdev gets + * called first & initialization is deferred. * Alan Cox : device private ioctl copies fields back. * Alan Cox : Transmit queue code does relevant stunts to * keep the queue safe. @@ -2733,8 +2736,10 @@ #endif dev->xmit_lock_owner = -1; dev->iflink = -1; - dev_hold(dev); - + /* Can't do dev_hold here in case + * register_netdev gets called first. + */ + atomic_set(&dev->refcnt,1); /* * Allocate name. If the init() fails * the name will be reissued correctly.