Closed GoogleCodeExporter closed 9 years ago
it works fine before r13084
Original comment by ki.stfu
on 6 May 2014 at 3:36
it doesn't working after r13084
to fix module initialization apply changes introduced in r13132-r13134 with
$ svn merge -r13131:13134 .
Original comment by ki.stfu
on 8 May 2014 at 8:23
btw, try this
Index: src/arch/x86/kernel/context_switch.S
===================================================================
--- src/arch/x86/kernel/context_switch.S (revision 13691)
+++ src/arch/x86/kernel/context_switch.S (working copy)
@@ -31,6 +31,7 @@
movl CTX_X86_ESP(%ecx), %esp /* Restore esp */
push CTX_X86_EFLAGS(%ecx) /* Push saved flags */
popf /* Restore flags */
+ sti
movl CTX_X86_EIP(%ecx), %eax /* Get eip */
push %eax /* Restore it as return address */
Original comment by ki.stfu
on 8 May 2014 at 9:00
Last suggestion was really close.
There is no initialization order difference between specified commits.
But when timer_test started interrupts was already disabled. So it was broken
earlier.
I've found out that with O2 __schedule stores ipl in esi register, and exactly
this register wasn't properly restored in context_switch!
Fix introduced in r14105. Compiled with O2 timer_test isn't fails anymore.
Original comment by drakon.m...@gmail.com
on 19 Jun 2014 at 3:05
Original issue reported on code.google.com by
ki.stfu
on 3 Apr 2014 at 12:32