if (current->tss.flags & (1UL << 63)) {
printk("die_if_kernel recursion detected.\n");
sti();
while (1);
}
That while loop sure would do it. It looks like an Oops oopsed. The
call to die_if_kernel is from do_page_fault in arch/alpha/mm/fault.c.
I got the "Unable to handle paging request at virtual address XXX"
message from this code:
printk(KERN_ALERT "Unable to handle kernel paging request at "
"virtual address %016lx\n", address);
die_if_kernel("Oops", regs, cause, (unsigned long*)regs - 16);
do_exit(SIGKILL);
I didn't write down the actual address, but I think it was an "8". Sure
sounds broken.
The trace looks like this all together:
close_fp
do_exit
die_if_kernel
do_page_fault
entMM
sys_ioctl
strace
Yes, this program is being run under gdb. There is a chance that my
driver is at fault, although it generally works very well and I've been
running it in a variety of situations. I have no immediate reason to
doubt it, although it *does* support mmap. Still, I can't imagine why
the kernel would be page-faulting.
I will try to repeat this under more recent kernels, but note that 2.1.125
doesn't even compile for me. (egcs 1.1)
-- Steve Williams "The woods are lovely, dark and deep. steve@icarus.com But I have promises to keep, steve@picturel.com and lines to code before I sleep, http://www.picturel.com And lines to code before I sleep."
- 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/