fix: The timer sequence stuck in infinite loop after series of delete operation
[lunaix-os.git] / lunaix-os / kernel / asm / x86 / interrupt.S
index 4647e95a467da053aec06509b5612b149bd3698d..e0cda172957dc1e7efc253cd55cc31df224b89b0 100644 (file)
@@ -1,7 +1,7 @@
 #define __ASM__
 #include <arch/x86/interrupts.h>
 #include <lunaix/common.h>
-// #define __ASM_INTR_DIAGNOSIS
+#define __ASM_INTR_DIAGNOSIS
 
 .macro isr_template vector, no_error_code=1
     .global _asm_isr\vector
         addl $8, %esp
 
 #ifdef __ASM_INTR_DIAGNOSIS
-        cmpl $0, (%esp)
-        jz 1f
-        iret
-1:
-        movl $__current, %eax
-        movl  (%esp), %ebx
-        movl $debug_resv, %ecx
-        ud2
-#else
-        iret
+        pushl %eax
+        movl 4(%esp), %eax
+        movl %eax, debug_resv
+        popl %eax
 #endif
+        iret