patch-2.4.0-test10 linux/arch/i386/kernel/entry.S
Next file: linux/arch/i386/kernel/i387.c
Previous file: linux/arch/i386/kernel/bluesmoke.c
Back to the patch index
Back to the overall index
- Lines: 42
- Date:
Mon Oct 16 12:35:44 2000
- Orig file:
v2.4.0-test9/linux/arch/i386/kernel/entry.S
- Orig date:
Sun Oct 8 10:50:06 2000
diff -u --recursive --new-file v2.4.0-test9/linux/arch/i386/kernel/entry.S linux/arch/i386/kernel/entry.S
@@ -205,7 +205,7 @@
ENTRY(ret_from_sys_call)
#ifdef CONFIG_SMP
movl processor(%ebx),%eax
- shll $5,%eax
+ shll $CONFIG_X86_L1_CACHE_SHIFT,%eax
movl SYMBOL_NAME(irq_stat)(,%eax),%ecx # softirq_active
testl SYMBOL_NAME(irq_stat)+4(,%eax),%ecx # softirq_mask
#else
@@ -261,7 +261,7 @@
#ifdef CONFIG_SMP
GET_CURRENT(%ebx)
movl processor(%ebx),%eax
- shll $5,%eax
+ shll $CONFIG_X86_L1_CACHE_SHIFT,%eax
movl SYMBOL_NAME(irq_stat)(,%eax),%ecx # softirq_active
testl SYMBOL_NAME(irq_stat)+4(,%eax),%ecx # softirq_mask
#else
@@ -305,16 +305,18 @@
pushl %ebx
cld
movl %es,%ecx
- xchgl %eax, ORIG_EAX(%esp) # orig_eax (get the error code. )
+ movl ORIG_EAX(%esp), %esi # get the error code
+ movl ES(%esp), %edi # get the function address
+ movl %eax, ORIG_EAX(%esp)
+ movl %ecx, ES(%esp)
movl %esp,%edx
- xchgl %ecx, ES(%esp) # get the address and save es.
- pushl %eax # push the error code
- pushl %edx
+ pushl %esi # push the error code
+ pushl %edx # push the pt_regs pointer
movl $(__KERNEL_DS),%edx
movl %edx,%ds
movl %edx,%es
GET_CURRENT(%ebx)
- call *%ecx
+ call *%edi
addl $8,%esp
jmp ret_from_exception
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)