Re: Either the IP masq code or my brain is broken.

David Woodhouse (David.Woodhouse@mvhi.com)
Tue, 27 Oct 1998 11:01:24 +0000


ak@muc.de said:
> It is bogus to call verify_area on kernel buffers

Hmmm. Can you suggest an alternative way of checking that the pointer and
length are valid?

Would it be possible to set up exception handlers within the kernel? Can we
implement and use setjmp()? It'd need a lot of thought, but it would be ideal
for this case, and possibly others, where a fault can easily be dealt with.

> For what address exactly does the oops occur?

I've got three oopsen on record (of my own). Of those, one was 'page fault
from irq handler', and the other two were oopsing on the address c2000000.

The most recent...

Unable to handle kernel paging request at virtual address c2000000
current->tss.cr3 = 00101000, %cr3 = 00101000
*pde = 00000000
Ooops: 0000
CPU: 0
EIP: 0010:[<c01da498>]
EFLAGS: 00010202
eax: a8405d54 ebx: c01da49e ecx: 01fdbbb5 edx: fffffff8
esi: c2000080 edi: c034cb40 ebp: c0217f0c esp: c0217ea8
ds: 0018 es: 0018 ss: 018
Process swapper (pid:0, process nr: 0, stackpage=c0217000)
Stack: c0165a91 c0dddb08 fffffff8 00000000 c034cb40 c0dddad4 c0dddad4 c0217f0c
00000000 c020bd70 00000002 3210989e 00000000 00000020 c14d0018 c0dddae8
c0dddad4 c0169b4b c0217f15 c034cb40 c0dddad4 c0217f34 c0169fab 00000000
Call Trace: [<c0165a91>] [<c0169b4b>] [<c0169fab>] [<c0169ff8>] [<c015f2f4>] [<c01179dd>] [<c0110a63>]
[<c0108055>] [<c010808c>] [<c0109820>] [<c0106084>] [<c0106073>] [<c0106000>] [<c0100176>]
Code: 13 46 80 13 46 84 13 46 88 13 46 8c 13 46 90 13 46 94 13 46
Aiee, killing interrupt handler
Kernel panic: Attempted to kill the idle task!
In swapper task - not syncing
Using `./System.map' to map addresses to symbols.

>>EIP: c01da498 <csum_partial+5c/e8>
Trace: c0165a91 <ip_fw_demasquerade+209/554>
Trace: c0169b4b <ip_local_deliver+1f/22c>
Trace: c0169fab <ip_rcv+253/2d4>
Trace: c0169ff8 <ip_rcv+2a0/2d4>
Trace: c015f2f4 <net_bh+16c/1cc>
Trace: c01179dd <do_bottom_half+49/64>
Trace: c0110a63 <schedule+3b/264>
Trace: c0108055 <sys_idle+65/ac>
Trace: c010808c <sys_idle+9c/ac>
Trace: c0109820 <system_call+34/38>
Trace: c0106084 <init>
Trace: c0106073 <cpu_idle+7/18>
Trace: c0106000 <get_options>
Trace: c0100176 <L6>
Code: c01da498 <csum_partial+5c/e8>
Code: c01da498 <csum_partial+5c/e8> 13 46 80 adcl 0xffffff80(%esi),%eax
Code: c01da49b <csum_partial+5f/e8> 13 46 84 adcl 0xffffff84(%esi),%eax
Code: c01da49e <csum_partial+62/e8> 13 46 88 adcl 0xffffff88(%esi),%eax
Code: c01da4a1 <csum_partial+65/e8> 13 46 8c adcl 0xffffff8c(%esi),%eax
Code: c01da4a4 <csum_partial+68/e8> 13 46 90 adcl 0xffffff90(%esi),%eax
Code: c01da4a7 <csum_partial+6b/e8> 13 46 94 adcl 0xffffff94(%esi),%eax
Code: c01da4aa <csum_partial+6e/e8> 13 46 00 adcl 0x0(%esi),%eax
Code: c01da4ad <csum_partial+71/e8> 90 nop
Code: c01da4ae <csum_partial+72/e8> 90 nop
Code: c01da4af <csum_partial+73/e8> 90 nop

---- ---- ----
David Woodhouse David.Woodhouse@mvhi.com Office: (+44) 1223 810302
Project Leader, Process Information Systems Mobile: (+44) 976 658355
Axiom (Cambridge) Ltd., Swaffham Bulbeck, Cambridge, CB5 0NA, UK.
finger dwmw2@ferret.lmh.ox.ac.uk for PGP key.

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