[NET]: Fix race condition about network device name allocation.
authorStephen Hemminger <shemminger@linux-foundation.org>
Sat, 19 May 2007 22:39:25 +0000 (15:39 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 19 May 2007 22:39:25 +0000 (15:39 -0700)
commit9093bbb2d96d0184f037cea9b4e952a44ebe7c32
treeac2db6fbe7ead1f6f8ef200068c0db24576bcab9
parentd8cf27287ac7fb5cbfcc4139917a997c39d841ca
[NET]: Fix race condition about network device name allocation.

Kenji Kaneshige found this race between device removal and
registration.  On unregister it is possible for the old device to
exist, because sysfs file is still open.  A new device with 'eth%d'
will select the same name, but sysfs kobject register will fial.

The following changes the shutdown order slightly. It hold a removes
the sysfs entries earlier (on unregister_netdevice), but holds a
kobject reference.  Then when todo runs the actual last put free
happens.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c
net/core/net-sysfs.c