Re: Interrupt sharing problem (kernel freeze)

From: Manfred (manfred@colorfullife.com)
Date: Thu Oct 05 2000 - 08:53:12 EST


> Looking at the trace, I can see the cpu wasn't actually doing
> anything when it crashed. Well, an interrupt occured, and that
> apparently is fatal on my machine. Now I wonder why.

It's easy to explain the crash:

> >>EIP: ffffffff <END_OF_CODE+37649e23/???
> Trace: c01127ae <timer_bh+2be/404>

Someone called add_timer with either an invalid or corrupted timer_list
pointer, and this caused an oops in kernel/sched.c, around line 1153

        spin_unlock_irq(&timerlist_lock);
        fn(data); <<<<<<<<<<<<<<<
        spin_lock_irq(&timerlist_lock);

But please don't ask me which driver did that ;-(

> eax: 0000000f ebx: c7e471c0 ecx: 00000000 edx: 00000001
> esi: c885b9bc edi: c022c3a4 ebp: c0247f4c esp: c0247f18

Could someone with a Redhat 2.2.16-3 kernel check how gcc compiled the
function call?
My kernel uses
        call *%esi

_If_ 2.2.16-3 uses the same instruction, then c885b9bc might point into
the buggy driver.

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



This archive was generated by hypermail 2b29 : Sat Oct 07 2000 - 21:00:16 EST