[Top] [All Lists]

Re: unable to handle kernel paging request

To: Dennis Grevenstein <>
Subject: Re: unable to handle kernel paging request
From: Jan-Benedict Glaw <>
Date: Sun, 31 Oct 2004 21:13:35 +0100
In-reply-to: <>
Mail-followup-to: Dennis Grevenstein <>,
Original-recipient: rfc822;
References: <> <> <> <> <>
User-agent: Mutt/1.5.6+20040907i
On Sun, 2004-10-31 20:55:50 +0100, Dennis Grevenstein <>
wrote in message <>:
> On Sun, Oct 31, 2004 at 08:26:53PM +0100, Jan-Benedict Glaw wrote:
> > From my fading MIPS knowledge, ip22zilog_interrupt called
> > ip22zilog_receive_chars and the later one crashed. Now, use objdump and
> > create a disassembly dump of the object file that contains the IP22
> > Zilog stuff. There, find the part that's 0x20 bytes away from the start
> > of ip22zilog_receive_chars. Now you know the cause of this oops.
> That's what I found:

> 8810da14:       8c82001c        lw      v0,28(a0)
> 8810da18:       00809021        move    s2,a0
> 8810da1c:       8c510000        lw      s1,0(v0)

It's accessing (most probably) a structure's first field, where the
structure is supplied by pointer in v0.

> 8810da20:       00a09821        move    s3,a1   
> 8810da24:       8e220118        lw      v0,280(s1) 

So now, find out what v0 belongs to. Maybe compiling the kernel with
debug infos (-g) and using objdump -S (for intermixing sources) will
help you.

Most probably, something wasn't correctly registered, so the pointer to
a struct is just a NULL pointer.

> and:
> 8810e224:       0e04367f        jal     8810d9fc <ip22zilog_receive_chars>
> 8810e228:       02803021        move    a2,s4
> 8810e22c:       0a04386e        j       8810e1b8 <ip22zilog_interrupt+0xd8>
> 8810e230:       32020001        andi    v0,s0,0x1   
> 8810e234:       0e0437bc        jal     8810def0 <ip22zilog_transmit_chars>

So this all fits properly :-)

> > From
> > here, try to figure out the reason for it...
> Well, I'm sure "MIPS assembly for Dummies" must be available
> somewhere. While I keep looking please help me ;-)

"objdump -S" for starters, but it seems quite straight forward. Maybe
paste the code of ip22zilog_receive_chars, I don't  have that at hands
right now...


Jan-Benedict Glaw    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

Attachment: signature.asc
Description: Digital signature

<Prev in Thread] Current Thread [Next in Thread>