#729 closed defect (fixed)
Debug exception during SYSENTER panics the kernel
Reported by: | Jakub Jermář | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 0.7.2 |
Component: | helenos/kernel/ia32 | Version: | mainline |
Keywords: | Cc: | ||
Blocker for: | Depends on: | ||
See also: |
Description
As of b277bef17cacdcab109f936194b7f7b6e0d05213, the following instructions executed by userspace panic the kernel:
diff --git a/uspace/lib/c/arch/ia32/src/syscall.S b/uspace/lib/c/arch/ia32/src/syscall.S index ddf90535d..855fccb16 100644 --- a/uspace/lib/c/arch/ia32/src/syscall.S +++ b/uspace/lib/c/arch/ia32/src/syscall.S @@ -77,11 +77,9 @@ FUNCTION_BEGIN(__syscall_fast) pushl %ebp mov %esp, %ebp lea ra, %edi - movl 20(%esp), %edx # First argument. - movl 24(%esp), %ecx # Second argument. - movl 28(%esp), %ebx # Third argument. - movl 32(%esp), %esi # Fourth argument. - movl 44(%esp), %eax # Syscall number. + pushf + orl $0x100, (%esp) # Set TF + popf sysenter ra: movw %cs, %cx
The panic looks like this:
Program loader at 0xc03c0000 RAM disk at 0x0027a000 (size 12582912 bytes) Kernel console ready (press any key to activate) ######> Kernel panic on cpu0 due to bad trap 1. <###### Unserviced interrupt: 1. THE=0x8126e000: pe=0 thread=0x81268214 task=0x81254234 cpu=0x81128c00 as=0x8100104c magic=0xfacefeed thread="uinit" task="init:ns" cs =0x00000008 eip=0x8010a1df efl=0x00200112 err=0x8126ffd0 ds =0x00000023 es =0x00000023 fs =0x00000023 gs =0x00000030 eax=0x00000000 ebx=0x00411000 ecx=0x00411000 edx=0x00003000 esi=0x00002027 edi=0x0040b641 ebp=0x7ffffd4c esp=0x8126ffb4 0x8126fe70: generic/src/debug/stacktrace.o:stack_trace()+0x00000013 0x8126fec0: generic/src/debug/panic.o:panic_common()+0x000001a1 0x8126fef0: arch/ia32/src/interrupt.o:nm_fault() 0x8126ff60: generic/src/interrupt/interrupt.o:exc_dispatch()+0x000000c5 0x8126ff8c: arch/ia32/src/asm.o:int_1()+0x00000069 0x7ffffd4c: arch/ia32/src/asm.o:sysenter_handler() 0x7ffffd88: 0x00414000() 0x7ffffdc8: 0x00406dd7() 0x7ffffdd8: 0x0040764b() 0x7ffffe28: 0x0040244f() 0x7ffffe48: 0x004026e8() 0x7fffff48: 0x00404b03() 0x7fffff88: 0x0040273a() 0x7fffffa8: 0x00402523() 0x7fffffc8: 0x004002a0() 0x7fffffec: 0x00400df4() 0x7ffffff8: 0x004000e2() cpu0: halted
Change History (2)
comment:1 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 by , 7 years ago
Milestone: | → 0.7.2 |
---|
Note:
See TracTickets
for help on using tickets.
Fixed by commit ae896561addffe016a8d8ed33bdb751cb862ccaf.