2.6test /proc/net/pnp oops.
Subsystems (2)
Whilst trying to figure out what kept changing the bootserver entry every few minutes, I got the following oops when I did cat /proc/net/pnp
This is from bitkeeper tree as of 24hrs ago.
Dave
Unable to handle kernel paging request at virtual address c06f977c printing eip: c04f22aa *pde = 00103027 *pte = 006f9000 Oops: 0000 [#1] CPU: 1 EIP: 0060:[<c04f22aa>] Not tainted EFLAGS: 00210202
EIP is at pnp_get_info+0xc6/0x17b
eax: 00000013 ebx: ca5fd000 ecx: c05ea6c4 edx: c05ea6c3
esi: 00000003 edi: ca5fd009 ebp: c7fbff24 esp: c7fbfefc
ds: 007b es: 007b ss: 0068
Process cat (pid: 16022, threadinfo=c7fbe000 task=c2c38000)
Stack: ca5fd02e c05ea6ad 00000000 00000000 00000000 00000000 00000041 00000000
00000400 0804c038 c7fbff6c c0194b9e ca5fd000 c7fbff5c 00000000 00000400
3f344b5d 14163598 3f344b5d 14163598 cdcffc80 00000000 ca5fd000 00000000
Call Trace:
[<c0194b9e>] proc_file_read+0x259/0x26f
[<c015feaf>] vfs_read+0xa1/0x10c
[<c0160119>] sys_read+0x3f/0x5d
[<c0109623>] syscall_call+0x7/0xb
Code: 83 3d 7c 97 6f c0 ff 74 45 0f b6 05 7f 97 6f c0 8b 55 f0 c7 Quoted 9 lines · Dave Jones
Whilst trying to figure out what kept changing the bootserver
entry every few minutes, I got the following oops when I did cat/proc/net/pnp
This is from bitkeeper tree as of 24hrs ago.Dave
Unable to handle kernel paging request at virtual address c06f977c
Could you please check your System.map and verify that ic_servaddr was at 0xc06f977c?
net/ipv4/ipconfig.c renamed from net/ipv4/ipconfig.c~pnp_get_info-oops-fix +1 -1
@@ -129,7 +129,7 @@ u32 ic_myaddr __initdata = INADDR_NONE;u32 ic_netmask__initdata =INADDR_NONE ;/* Netmask for local subnet */ u32 ic_gateway__initdata =INADDR_NONE ;/* Gateway IP address */ -u32 ic_servaddr__initdata =INADDR_NONE ;/* Boot server IP address */ +u32 ic_servaddr =INADDR_NONE ;/* Boot server IP address */ u32 root_server_addr__initdata =INADDR_NONE ;/* Address of NFS server */ u8 root_server_path[256 ]__initdata = {0 , };/* Path to mount as root */
_
Quoted 3 lines · Andrew Morton
Quoted 1 line
Unable to handle kernel paging request at virtual address c06f977cCould you please check your System.map and verify that
ic_servaddrwas at0xc06f977c?
-ENOSYSTEMMAP
Though your patch does seem to make sense (to me at least). I'll give it a try. I certainly haven't configured anything, so it seems to be showing random junk which resolves to various random bits of the internet. Groovy. Only seems to happen on one box though.
Dave
Ok, that patch stopped the random addresses appearing in /proc/net/pnp. There are also a bunch of other vars we output in that file also marked as initdata which look like they need fixing for the same reason.
The only remaining curious item for me..
With this fixed, the bootserver is 0.0.0.0, and there's a check which skips printing it if its INADDR_NONE
There are similar checks for the nameserver entries, but they still get printed out (as 0.0.0.0)
Dave
Signature · 1 line
Dave Jones http://www.codemonkey.org.uk
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas:
# ChangeSet 1.1064 -> 1.1065
# net/ipv4/ipconfig.c 1.28 -> 1.29
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/08/09 [email protected] 1.1065
# mustnt be __initdata # -------------------------------------------- # diff -Nru a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c --- a/net/ipv4/ipconfig.c Sat Aug 9 16:11:51 2003 +++ b/net/ipv4/ipconfig.c Sat Aug 9 16:11:51 2003 @@ -125,14 +125,14 @@
int ic_host_name_set __initdata = 0; /* Host name set by us? */
-u32 ic_myaddr __initdata = INADDR_NONE; /* My IP address */
-u32 ic_netmask __initdata = INADDR_NONE; /* Netmask for local subnet */
-u32 ic_gateway __initdata = INADDR_NONE; /* Gateway IP address */
+u32 ic_myaddr = INADDR_NONE; /* My IP address */
+u32 ic_netmask = INADDR_NONE; /* Netmask for local subnet */
+u32 ic_gateway = INADDR_NONE; /* Gateway IP address */
-u32 ic_servaddr __initdata = INADDR_NONE; /* Boot server IP address */
+u32 ic_servaddr = INADDR_NONE; /* Boot server IP address */
-u32 root_server_addr __initdata = INADDR_NONE; /* Address of NFS server */
-u8 root_server_path[256] __initdata = { 0, }; /* Path to mount as root */
+u32 root_server_addr = INADDR_NONE; /* Address of NFS server */
+u8 root_server_path[256] = { 0, }; /* Path to mount as root */
/* Persistent data: */