summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2011-04-14 14:06:07 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2011-04-14 14:06:07 +0000
commit261dcbec2c4c9a0c15d4408e30c8034c82c44e77 (patch)
tree6b67229d5bf1c0c4a5f2aa8e99c828007bb63af3 /sys/arch
parent84bcb77d0e7012c5a8b08695ac7a4d1f84c2397e (diff)
Fix copy_on_fault by decrementing the stack pointer before restoring the
return pointer.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/hppa64/hppa64/locore.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/hppa64/hppa64/locore.S b/sys/arch/hppa64/hppa64/locore.S
index 803c55305da..5d4be5c50c4 100644
--- a/sys/arch/hppa64/hppa64/locore.S
+++ b/sys/arch/hppa64/hppa64/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.20 2011/04/13 17:36:29 jsing Exp $ */
+/* $OpenBSD: locore.S,v 1.21 2011/04/14 14:06:06 jsing Exp $ */
/*
* Copyright (c) 2005 Michael Shalayeff
@@ -1514,8 +1514,8 @@ LEAF_ENTRY(copy_on_fault)
mtsp %r0, %sr1
mtsp %r0, %sr2
std %r1, PCB_ONFAULT+U_PCB(%rp)
- ldd HPPA_FRAME_RP(%sp), %rp
ldo -HPPA_FRAME_SIZE(%sp), %sp
+ ldd HPPA_FRAME_RP(%sp), %rp
bv %r0(%rp)
ldi EFAULT, %ret0
EXIT(copy_on_fault)