patch-2.1.27 linux/arch/i386/kernel/entry.S
Next file: linux/arch/i386/kernel/sys_i386.c
Previous file: linux/arch/i386/defconfig
Back to the patch index
Back to the overall index
- Lines: 41
- Date:
Wed Feb 26 13:22:32 1997
- Orig file:
v2.1.26/linux/arch/i386/kernel/entry.S
- Orig date:
Sun Jan 26 02:07:04 1997
diff -u --recursive --new-file v2.1.26/linux/arch/i386/kernel/entry.S linux/arch/i386/kernel/entry.S
@@ -163,7 +163,7 @@
ALIGN
handle_bottom_half:
- pushl $9f
+ pushl $2f
jmp SYMBOL_NAME(do_bottom_half)
ALIGN
@@ -183,14 +183,20 @@
movl %eax,EAX(%esp) # save the return value
ALIGN
.globl ret_from_sys_call
+ .globl ret_from_intr
+ret_from_intr:
ret_from_sys_call:
GET_CURRENT(%ebx)
cmpl $0,SYMBOL_NAME(intr_count)
+#ifdef __SMP__
+ jne 2f
+#else
jne 1f
+#endif
9: movl SYMBOL_NAME(bh_mask),%eax
andl SYMBOL_NAME(bh_active),%eax
jne handle_bottom_half
- movl EFLAGS(%esp),%eax # mix EFLAGS and CS
+2: movl EFLAGS(%esp),%eax # mix EFLAGS and CS
movb CS(%esp),%al
testl $(VM_MASK | 3),%eax # return to VM86 mode or non-supervisor?
je 1f
@@ -201,7 +207,8 @@
notl %eax
andl signal(%ebx),%eax
jne signal_return
-1: RESTORE_ALL
+1:
+ RESTORE_ALL
ALIGN
signal_return:
testl $(VM_MASK),EFLAGS(%esp)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov