Re: netdevice name corruption is still present in 2.6.18-rc6-mm1

From: Andrew Morton
Date: Sat Sep 09 2006 - 01:23:20 EST


On Fri, 08 Sep 2006 23:29:39 -0400
Nick Orlov <bugfixer@xxxxxxx> wrote:

> Andrew,
>
> I would like to confirm that issue with netdevice name corruption
> is still present in 2.6.18-rc6-mm1 and extremely easy to reproduce
> (at least on my system) with 100% hit rate.
>
> All I have to do is 'sudo /etc/init.d/networking stop'. And here we go:
>
> Sep 8 22:50:11 nickolas kernel: [events/1:7]: Changing netdevice name from [ath0] to [\200^C^BÐ\206]
>
> Does not look like an userspace issue at all...
>
> Last kernel which is known to be working (for me) is 2.6.18-rc1-mm2.
> Sorry, I now that a lot of things had changed since then,
> but I was somewhat busy last couple of months...
>
> Please let me know if I can help somehow to debug it.
>
> Thank you,
> Nick Orlov.
>
> P.S. I admit that I'm using "binary only atheros driver" which makes
> this report a lot less legit. But seems like people experiencing the
> very same issue w/o any closed-source drivers loaded...
>
> P.P.S I don't even have NetworkManager executable on my system
> (Debian unstable updated on daily basis), so NetworkManager have
> nothing to do with it.
>

No idea what's happened here then. That was with Dave's patch applied:

From: David Miller <davem@xxxxxxxxxxxxx>

A debugging patch like this one should help figure out the culprit.

If we don't see the gibberish netdevice name printed in the kernel
logs, then likely something is corrupting the netdevice structure or
the memory holding the name.


Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

net/core/dev.c | 5 +++++
1 file changed, 5 insertions(+)

diff -puN net/core/dev.c~dev_change_name-debug net/core/dev.c
--- a/net/core/dev.c~dev_change_name-debug
+++ a/net/core/dev.c
@@ -738,6 +738,11 @@ int dev_change_name(struct net_device *d

if (!dev_valid_name(newname))
return -EINVAL;
+#if 1
+ printk("[%s:%d]: Changing netdevice name from [%s] to [%s]\n",
+ current->comm, current->pid,
+ dev->name, newname);
+#endif

if (strchr(newname, '%')) {
err = dev_alloc_name(dev, newname);
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/