In sys-i386/fault.c - search_exception_tables().
search_exception_tables() returned null.
fixup = search_exception_tables(address)->fixup;
This then results in a recusive segfault at address 4.
I think address=0xa4807000 should have been a good
address with a mmap to my device driver in the host.
The host driver is using nopage() to fault in the
pages.
My driver handled the nopage() fault five times before
hitting this problem.
There was a recent post about segfaulting at address
4. This may have been the problem.
#5 0xa001c1fa in arch_fixup (address=0x4, sc_ptr=0x0)
at arch/um/sys-i386/fault.c:22
#6 0xa0014c6d in segv (address=0x4, ip=0xa001c1fa,
is_write=0x0, is_user=0x0, sc=0xa1d083b0) at
arch/um/kernel/trap_kern.c:126
#7 0xa0014fee in segv_handler (sig=0xb,
regs=0xa1d083b0) at arch/um/kernel/trap_user.c:69
#8 0xa0019182 in sig_handler_common_tt (sig=0xb,
sc_ptr=0x58) at arch/um/kernel/tt/trap_user.c:37
#9 0xa00150cb in sig_handler (sig=0x0, sc={gs = 0x0,
__gsh = 0x0, fs = 0x0, __fsh = 0x0, es = 0x2b, __esh =
0x0, ds = 0x2b, __dsh = 0x0, edi = 0x0, esi = 0x4, ebp
= 0xa1dd6e34, esp = 0xa1dd6e1c, ebx = 0xfffffff2, edx
= 0x0, ecx = 0xa1dd6d2c, eax = 0x0, trapno = 0xe, err
= 0x4, eip = 0xa001c1fa, cs = 0x23, __csh = 0x0,
eflags = 0x210386, esp_at_signal = 0xa1dd6e1c, ss =
0x2b, __ssh = 0x0, fpstate = 0x0, oldmask = 0xc010000,
cr2 = 0x4}) at arch/um/kernel/trap_user.c:102
#10 <signal handler called>
#11 0xa001c1fa in arch_fixup (address=0x4, sc_ptr=0x0)
at arch/um/sys-i386/fault.c:22
#12 0xa0014c6d in segv (address=0x4, ip=0xa001c1fa,
is_write=0x0, is_user=0x0, sc=0xa1d083b0) at
arch/um/kernel/trap_kern.c:126
#13 0xa0014fee in segv_handler (sig=0xb,
regs=0xa1d083b0) at arch/um/kernel/trap_user.c:69
#14 0xa0019182 in sig_handler_common_tt (sig=0xb,
sc_ptr=0x58) at arch/um/kernel/tt/trap_user.c:37
#15 0xa00150cb in sig_handler (sig=0x0, sc={gs = 0x0,
__gsh = 0x0, fs = 0x0, __fsh = 0x0, es = 0x2b, __esh =
0x0, ds = 0x2b, __dsh = 0x0, edi = 0x0, esi =
0xa4807000, ebp = 0xa1dd72ac, esp = 0xa1dd7294, ebx =
0xfffffff2, edx = 0x0, ecx = 0xa1dd71a4, eax = 0x0,
trapno = 0xe, err = 0x4, eip = 0xa001c1fa, cs = 0x23,
__csh = 0x0, eflags = 0x210386, esp_at_signal =
0xa1dd7294, ss = 0x2b, __ssh = 0x0, fpstate = 0x0,
oldmask = 0xc010000, cr2 = 0x4}) at
arch/um/kernel/trap_user.c:102
#16 <signal handler called>
#17 0xa001c1fa in arch_fixup (address=0xa4807000,
sc_ptr=0x0) at arch/um/sys-i386/fault.c:22
#18 0xa0014c6d in segv (address=0xa4807000,
ip=0xa0016201, is_write=0x0, is_user=0x0,
sc=0xa1d083b0) at arch/um/kernel/trap_kern.c:126
#19 0xa0014fee in segv_handler (sig=0xb,
regs=0xa1d083b0) at arch/um/kernel/trap_user.c:69
#20 0xa0019182 in sig_handler_common_tt (sig=0xb,
sc_ptr=0x58) at arch/um/kernel/tt/trap_user.c:37
#21 0xa00150cb in sig_handler (sig=0x0, sc={gs = 0x0,
__gsh = 0x0, fs = 0x0, __fsh = 0x0, es = 0x2b, __esh =
0x0, ds = 0x2b, __dsh = 0x0, edi = 0xa18c5012, esi =
0xa4807000, ebp = 0xa1dd7724, esp = 0xa1dd770c, ebx =
0x600, edx = 0x0, ecx = 0x180, eax = 0x38, trapno =
0xe, err = 0x4, eip = 0xa0016201, cs = 0x23, __csh =
0x0, eflags = 0x210312, esp_at_signal = 0xa1dd770c, ss
= 0x2b, __ssh = 0x0, fpstate = 0x0, oldmask =
0xc010000, cr2 = 0xa4807000}) at
arch/um/kernel/trap_user.c:102
#22 <signal handler called>
#23 0xa0016201 in dma_sync_single (dev=0xa1f5ac00,
dma_addr=0x0, size=0x600, direction=2710327314) at
include/asm/arch/string.h:196
#24 0xa010b84f in boomerang_rx (dev=0xa1f5ac00) at
include/asm-generic/pci-dma-compat.h:77
#25 0xa010af6a in boomerang_interrupt (irq=0xb,
dev_id=0xa1f5ac00, regs=0xa1d083b0) at
drivers/net/3c59x.c:2339
#26 0xa000aee8 in handle_IRQ_event (irq=0xb,
regs=0xa1d083b0, action=0xa1f3962c) at
arch/um/kernel/irq.c:159
#27 0xa000b099 in do_IRQ (irq=0xb, regs=0xa1d083b0) at
arch/um/kernel/irq.c:329
#28 0xa000b98f in sigio_handler (sig=0x1d,
regs=0xa1d083b0) at arch/um/kernel/irq_user.c:79
#29 0xa0019182 in sig_handler_common_tt (sig=0x1d,
sc_ptr=0xe8) at arch/um/kernel/tt/trap_user.c:37
#30 0xa00150cb in sig_handler (sig=0x0, sc={gs = 0x0,
__gsh = 0x0, fs = 0x0, __fsh = 0x0, es = 0x2b, __esh =
0x0, ds = 0x2b, __dsh = 0x0, edi = 0x1, esi =
0x80cb49b, ebp = 0xa1dd7c7c, esp = 0xa1dd7b94, ebx =
0x0, edx = 0xa08c5804, ecx = 0xa08c5808, eax = 0x0,
trapno = 0x1, err = 0x0, eip = 0xa0014b3b, cs = 0x23,
__csh = 0x0, eflags = 0x200346, esp_at_signal =
0xa1dd7b94, ss = 0x2b, __ssh = 0x0, fpstate = 0x0,
oldmask = 0xc010400, cr2 = 0x80cb49b}) at
arch/um/kernel/trap_user.c:102
#31 <signal handler called>
#32 segv (address=0x80cb49b, ip=0xa1d083b0,
is_write=0xa1dd7cfc, is_user=0x1, sc=0x1) at
arch/um/kernel/trap_kern.c:116
#33 0xa0014fee in segv_handler (sig=0xb,
regs=0xa1d083b0) at arch/um/kernel/trap_user.c:69
#34 0xa0019182 in sig_handler_common_tt (sig=0xb,
sc_ptr=0x58) at arch/um/kernel/tt/trap_user.c:37
#35 0xa00150cb in sig_handler (sig=0x0, sc={gs = 0x0,
__gsh = 0x0, fs = 0x0, __fsh = 0x0, es = 0x2b, __esh =
0x0, ds = 0x2b, __dsh = 0x0, edi = 0x0, esi = 0x3, ebp
= 0x9ffff538, esp = 0x9ffff520, ebx = 0x15d, edx =
0x24, ecx = 0x1000, eax = 0x80cb498, trapno = 0xe, err
= 0x7, eip = 0x80ac56d, cs = 0x23, __csh = 0x0, eflags
= 0x210293, esp_at_signal = 0x9ffff520, ss = 0x2b,
__ssh = 0x0, fpstate = 0xa1dd7d80, oldmask =
0xc010000, cr2 = 0x80cb49b}) at
arch/um/kernel/trap_user.c:102
(gdb) Quit
(gdb)
=====
Jon Smirl
jonsmirl@...
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
|