aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Burkholder <jake@FreeBSD.org>2002-04-20 16:23:52 +0000
committerJake Burkholder <jake@FreeBSD.org>2002-04-20 16:23:52 +0000
commitd1fef1792c1cf2fd37720298bab60f29f315e56c (patch)
treec7c5a952f3aaf8263fdaddba26a847e96794c90d
parentbb52b4f3fc3aeea775b52df3a9693e6bce35a32e (diff)
Notes
-rw-r--r--sys/sparc64/sparc64/rwindow.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/rwindow.c b/sys/sparc64/sparc64/rwindow.c
index 2a29a23ceda40..0c5e5a64371f8 100644
--- a/sys/sparc64/sparc64/rwindow.c
+++ b/sys/sparc64/sparc64/rwindow.c
@@ -60,6 +60,8 @@ rwindow_load(struct thread *td, struct trapframe *tf, int n)
for (i = 0; i < n; i++) {
CTR1(KTR_TRAP, "rwindow_load: usp=%#lx", usp);
usp += SPOFF;
+ if ((error = (usp & 0x7)) != 0)
+ break;
error = copyin((void *)usp, &rw, sizeof rw);
usp = rw.rw_in[6];
}
@@ -91,6 +93,8 @@ rwindow_save(struct thread *td)
usp = *ausp;
CTR1(KTR_TRAP, "rwindow_save: usp=%#lx", usp);
usp += SPOFF;
+ if ((error = (usp & 0x7)) != 0)
+ break;
error = copyout(rw, (void *)usp, sizeof *rw);
if (error)
break;