2003-08-09 01:19:55

by Dave Jones

[permalink] [raw]
Subject: 2.6test /proc/net/pnp oops.

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


2003-08-09 01:47:42

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6test /proc/net/pnp oops.

Dave Jones <[email protected]> wrote:
>
> 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?

diff -puN net/ipv4/ipconfig.c~pnp_get_info-oops-fix net/ipv4/ipconfig.c
--- 25/net/ipv4/ipconfig.c~pnp_get_info-oops-fix 2003-08-08 18:48:33.000000000 -0700
+++ 25-akpm/net/ipv4/ipconfig.c 2003-08-08 18:48:40.000000000 -0700
@@ -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 */

_

2003-08-09 02:14:16

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6test /proc/net/pnp oops.

On Fri, Aug 08, 2003 at 06:49:50PM -0700, Andrew Morton wrote:

> > 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?

-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

2003-08-09 15:12:50

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6test /proc/net/pnp oops.

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

--
Dave Jones http://www.codemonkey.org.uk


Attachments:
(No filename) (515.00 B)
ipconfig.diff (1.53 kB)
Download all attachments