On Sun, 9 Apr 2006 21:56:59 +0400, Sergey Vlasov <[EMAIL PROTECTED]> wrote:
> However, show_address() does not output anything unless > dev->reg_state == NETREG_REGISTERED - and this state is set by > netdev_run_todo() only after netdev_register_sysfs() returns, so in > the meantime (while netdev_register_sysfs() is busy adding the > "statistics" attribute group) some process may see an empty "address" > attribute. I've tried the attached patch, suggested by Sergey Vlasov on hotplug-devel@, and as far as i can test it works just fine. Thanks, -- TGL.
--- net/core/dev.c.orig 2006-04-09 20:41:02.000000000 +0200 +++ net/core/dev.c 2006-04-09 20:46:28.000000000 +0200 @@ -2932,11 +2932,11 @@ switch(dev->reg_state) { case NETREG_REGISTERING: + dev->reg_state = NETREG_REGISTERED; err = netdev_register_sysfs(dev); if (err) printk(KERN_ERR "%s: failed sysfs registration (%d)\n", dev->name, err); - dev->reg_state = NETREG_REGISTERED; break; case NETREG_UNREGISTERING: