summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/mm/ultra.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-06-13 16:29:25 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-06-13 16:29:25 +0000
commitdb7d4daea91e105e3859cf461d7e53b9b77454b2 (patch)
tree9bb65b95440af09e8aca63abe56970dd3360cc57 /arch/sparc64/mm/ultra.S
parent9c1c01ead627bdda9211c9abd5b758d6c687d8ac (diff)
Merge with Linux 2.2.8.
Diffstat (limited to 'arch/sparc64/mm/ultra.S')
-rw-r--r--arch/sparc64/mm/ultra.S17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S
index 4362a15b4..3d3d1a289 100644
--- a/arch/sparc64/mm/ultra.S
+++ b/arch/sparc64/mm/ultra.S
@@ -1,4 +1,4 @@
-/* $Id: ultra.S,v 1.31 1998/11/07 06:39:21 davem Exp $
+/* $Id: ultra.S,v 1.32 1999/03/28 08:39:34 davem Exp $
* ultra.S: Don't expand these all over the place...
*
* Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
@@ -261,6 +261,21 @@ xcall_capture:
b,pt %xcc, rtrap
clr %l6
+ .globl xcall_receive_signal
+xcall_receive_signal:
+ rdpr %pstate, %g2
+ wrpr %g2, PSTATE_IG | PSTATE_AG, %pstate
+ rdpr %tstate, %g1
+ andcc %g1, TSTATE_PRIV, %g0
+ /* If we did not trap from user space, just ignore. */
+ bne,pn %xcc, 99f
+ sethi %hi(109f), %g7
+ b,pt %xcc, etrap
+109: or %g7, %lo(109b), %g7
+ b,pt %xcc, rtrap
+ clr %l6
+99: retry
+
/* These two are not performance critical... */
.globl xcall_flush_tlb_all
xcall_flush_tlb_all: