Re: 2.6.0-test9: Kernel OOPS in /sbin/nameif

From: YOSHIFUJI Hideaki / 吉藤英明
Date: Wed Nov 05 2003 - 12:32:41 EST


In article <200311051703.hA5H38nQ007123@xxxxxxxxxxxxxxxxxxxxxxx> (at Wed, 05 Nov 2003 12:03:08 -0500), Valdis.Kletnieks@xxxxxx says:

> Basic summary - when /sbin/nameif goes to rename an interface, things
> go totally pear-shaped. nameif itself croaks, and apparently leaves
> data structures corrupted - on a subsequent 'ifup lo' or 'shutdown -r'
> the system locks up solid.
>
> Unable to handle kernel NULL pointer dereference at virtual address 000000d8
> printing eip:
> c033eb32
:
> EIP is at addrconf_sysctl_unregister+0x7/0x3a
:
> Call Trace:
> [<c033cdda>] addrconf_notify+0xc4/0xfb
> [<c012673d>] notifier_call_chain+0x1c/0x37
:

Please try this.

===== net/ipv6/addrconf.c 1.74 vs edited =====
--- 1.74/net/ipv6/addrconf.c Tue Oct 28 20:10:47 2003
+++ edited/net/ipv6/addrconf.c Thu Nov 6 02:30:03 2003
@@ -1877,10 +1877,12 @@
break;
case NETDEV_CHANGENAME:
#ifdef CONFIG_SYSCTL
- addrconf_sysctl_unregister(&idev->cnf);
- neigh_sysctl_unregister(idev->nd_parms);
- neigh_sysctl_register(dev, idev->nd_parms, NET_IPV6, NET_IPV6_NEIGH, "ipv6");
- addrconf_sysctl_register(idev, &idev->cnf);
+ if (idev) {
+ addrconf_sysctl_unregister(&idev->cnf);
+ neigh_sysctl_unregister(idev->nd_parms);
+ neigh_sysctl_register(dev, idev->nd_parms, NET_IPV6, NET_IPV6_NEIGH, "ipv6");
+ addrconf_sysctl_register(idev, &idev->cnf);
+ }
#endif
break;
};

--
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@xxxxxxxxxxxxxx>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html