X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fcore%2Fnet-sysfs.c;h=5c19b0646d7a3e09c0284a93686c2d738fc92fd1;hb=40b77c943468236c6dfad3e7b94348fe70c70331;hp=b21307b15b82d7e09d34101180d9f7131bf1f418;hpb=bf62456eb91f3d2ef0736081583d09b0b3c8b7ea;p=linux-2.6 diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index b21307b15b..5c19b0646d 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -456,9 +456,15 @@ static struct class net_class = { #endif }; +/* Delete sysfs entries but hold kobject reference until after all + * netdev references are gone. + */ void netdev_unregister_sysfs(struct net_device * net) { - device_del(&(net->dev)); + struct device *dev = &(net->dev); + + kobject_get(&dev->kobj); + device_del(dev); } /* Create sysfs entries for network device. */