On Mon, Mar 19, 2007 at 08:37:57PM +0800, railroad seeker wrote: > After that, the program counter must located in BUG(), that is something > like > "(void *)0 = 0" if we really do scheduling in interrupt contxt, and > should cause > the kernel to panic. However, what i got is that the latest program > counter is located within the do_IRQ() context when the kernel was > crashed . But it > seems that the stack trace is a kernel stack of process context since > the bottom of the stack is ret_from_syscall. (I have not enabled the > frame pointer when compiling the kernel, instead, I back traced by > manually inspect each 32 bit value > from the output of objdump) , and I think that the latest PC should > point to the next instruction of "(void *) 0 = 0". > > Is there any possibility with which we got this incorrect information, > or I have > misunderstanding about "kernel system to interrupt context switch?
Please enable frame pointers and show the resulting backtrace; it is possible that trying to manually decode the stack without frame pointers enabled will result in a confused backtrace. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/