patch-2.1.23 linux/arch/sparc/kernel/rtrap.S
Next file: linux/arch/sparc/kernel/setup.c
Previous file: linux/arch/sparc/kernel/rirq.S
Back to the patch index
Back to the overall index
- Lines: 63
- Date:
Sun Jan 26 12:07:07 1997
- Orig file:
v2.1.22/linux/arch/sparc/kernel/rtrap.S
- Orig date:
Tue Dec 31 21:40:59 1996
diff -u --recursive --new-file v2.1.22/linux/arch/sparc/kernel/rtrap.S linux/arch/sparc/kernel/rtrap.S
@@ -1,4 +1,4 @@
-/* $Id: rtrap.S,v 1.41 1996/12/28 18:14:21 davem Exp $
+/* $Id: rtrap.S,v 1.44 1997/01/14 05:56:17 davem Exp $
* rtrap.S: Return from Sparc trap low-level code.
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
@@ -46,25 +46,25 @@
.globl ret_trap_entry, rtrap_patch1, rtrap_patch2
.globl rtrap_patch3, rtrap_patch4, rtrap_patch5
+ .globl C_LABEL(ret_trap_lockless_ipi)
ret_trap_entry:
- sethi %hi(C_LABEL(intr_count)), %g2
- ld [%g2 + %lo(C_LABEL(intr_count))], %g3
- orcc %g0, %g3, %g0
- bne 0f
- sethi %hi(C_LABEL(bh_active)), %l3
- sethi %hi(C_LABEL(bh_mask)), %l4
+ sethi %hi(C_LABEL(intr_count)), %g4
+ ld [%g4 + %lo(C_LABEL(intr_count))], %g5
+ orcc %g5, 0x0, %g0
+ sethi %hi(C_LABEL(bh_active)), %l3
+ bne C_LABEL(ret_trap_lockless_ipi)
+ sethi %hi(C_LABEL(bh_mask)), %l4
9:
ld [%l4 + %lo(C_LABEL(bh_mask))], %g5
ld [%l3 + %lo(C_LABEL(bh_active))], %g4
- sethi %hi(C_LABEL(intr_count)), %l7
andcc %g4, %g5, %g0
- be 0f
- mov 1, %g7
+ be C_LABEL(ret_trap_lockless_ipi)
+ nop
call C_LABEL(do_bottom_half)
- st %g7, [%l7 + %lo(C_LABEL(intr_count))]
- b 9b
- st %g0, [%l7 + %lo(C_LABEL(intr_count))]
-0:
+ nop
+ b,a 9b
+
+C_LABEL(ret_trap_lockless_ipi):
andcc %t_psr, PSR_PS, %g0
be 1f
sethi %hi(C_LABEL(need_resched)), %twin_tmp1
@@ -164,8 +164,6 @@
LOAD_PT_YREG(sp, g1)
LOAD_PT_GLOBALS(sp)
- LEAVE_SYSCALL
-
wr %t_psr, 0x0, %psr
WRITE_PAUSE
@@ -219,8 +217,6 @@
1:
LOAD_PT_ALL(sp, t_psr, t_pc, t_npc, g1)
2:
- LEAVE_SYSCALL
-
wr %t_psr, 0x0, %psr
WRITE_PAUSE
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov