* [PATCH] Prevent "eth0: driver changed get_stats after register" lying
@ 2003-10-18 20:46 Russell King
2003-10-18 20:47 ` Russell King
2003-10-19 7:06 ` David S. Miller
0 siblings, 2 replies; 3+ messages in thread
From: Russell King @ 2003-10-18 20:46 UTC (permalink / raw)
To: netdev
Hi,
There appears to be a race condition between netdev_register_sysfs
and hotplug. I'm seeing the message in the subject upon initialisation
of pcnet_cs.
We set "dev->last_stats" after we have registered the class device.
During class device registration, we trigger the hotplug scripts,
which can in turn bring up the interface. This in turn checks to
see if "dev->last_stats == dev->get_stats", and, since we haven't
set dev->last_stats yet, we complain.
Here is a patch against 2.6.0-test8 which moves the initialisation
of last_stats such that we avoid the race.
--- orig/net/core/net-sysfs.c Sat Oct 18 00:00:38 2003
+++ linux/net/core/net-sysfs.c Sat Oct 18 21:23:15 2003
@@ -408,6 +408,7 @@
class_dev->class = &net_class;
class_dev->class_data = net;
+ net->last_stats = net->get_stats;
strlcpy(class_dev->class_id, net->name, BUS_ID_SIZE);
if ((ret = class_device_register(class_dev)))
@@ -419,7 +420,6 @@
}
- net->last_stats = net->get_stats;
if (net->get_stats &&
(ret = sysfs_create_group(&class_dev->kobj, &netstat_group)))
goto out_unreg;
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] Prevent "eth0: driver changed get_stats after register" lying
2003-10-18 20:46 [PATCH] Prevent "eth0: driver changed get_stats after register" lying Russell King
@ 2003-10-18 20:47 ` Russell King
2003-10-19 7:06 ` David S. Miller
1 sibling, 0 replies; 3+ messages in thread
From: Russell King @ 2003-10-18 20:47 UTC (permalink / raw)
To: netdev
On Sat, Oct 18, 2003 at 09:46:22PM +0100, Russell King wrote:
> There appears to be a race condition between netdev_register_sysfs
> and hotplug. I'm seeing the message in the subject upon initialisation
> of pcnet_cs.
>
> We set "dev->last_stats" after we have registered the class device.
> During class device registration, we trigger the hotplug scripts,
> which can in turn bring up the interface. This in turn checks to
> see if "dev->last_stats == dev->get_stats", and, since we haven't
> set dev->last_stats yet, we complain.
Incidentally, this also means that hotplug scripts can run before
we've registered the class device attributes. Could that be another
problem? It's probably something that the hotplug people should
be aware of.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] Prevent "eth0: driver changed get_stats after register" lying
2003-10-18 20:46 [PATCH] Prevent "eth0: driver changed get_stats after register" lying Russell King
2003-10-18 20:47 ` Russell King
@ 2003-10-19 7:06 ` David S. Miller
1 sibling, 0 replies; 3+ messages in thread
From: David S. Miller @ 2003-10-19 7:06 UTC (permalink / raw)
To: Russell King; +Cc: netdev
On Sat, 18 Oct 2003 21:46:22 +0100
Russell King <rmk@arm.linux.org.uk> wrote:
> We set "dev->last_stats" after we have registered the class device.
> During class device registration, we trigger the hotplug scripts,
> which can in turn bring up the interface. This in turn checks to
> see if "dev->last_stats == dev->get_stats", and, since we haven't
> set dev->last_stats yet, we complain.
>
> Here is a patch against 2.6.0-test8 which moves the initialisation
> of last_stats such that we avoid the race.
Looks ok, thanks Russell.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-10-19 7:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-10-18 20:46 [PATCH] Prevent "eth0: driver changed get_stats after register" lying Russell King
2003-10-18 20:47 ` Russell King
2003-10-19 7:06 ` David S. Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).