summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2002-03-18 07:59:57 +0000
committeralc <alc@FreeBSD.org>2002-03-18 07:59:57 +0000
commit2cfa65bbe4f6e4f92fc1d6bd09b07aaebf40858d (patch)
tree0f0c552ecbec72639e447bde6736104755d1b591 /sys/amd64
parent25a6daa8288f53030d945a2021b249fe06e777bb (diff)
downloadFreeBSD-src-2cfa65bbe4f6e4f92fc1d6bd09b07aaebf40858d.zip
FreeBSD-src-2cfa65bbe4f6e4f92fc1d6bd09b07aaebf40858d.tar.gz
Eliminate grow_stack() from (o)sendsig(). If the stack needs to grow,
copyout() will page fault and perform grow_stack() from trap_pfault(). These calls to grow_stack() accomplish nothing. Reviewed by: bde
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/machdep.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 1153a99..5859004 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -386,12 +386,9 @@ osendsig(catcher, sig, mask, code)
}
/*
- * Copy the sigframe out to the user's stack. If this fails,
- * try growing the stack and retrying the copy.
+ * Copy the sigframe out to the user's stack.
*/
- if (copyout(&sf, fp, sizeof(*fp)) != 0 &&
- (grow_stack(p, (int)fp) == 0 ||
- copyout(&sf, fp, sizeof(*fp)) != 0)) {
+ if (copyout(&sf, fp, sizeof(*fp)) != 0) {
#ifdef DEBUG
printf("process %ld has trashed its stack\n", (long)p->p_pid);
#endif
@@ -518,12 +515,9 @@ sendsig(catcher, sig, mask, code)
}
/*
- * Copy the sigframe out to the user's stack. If this fails,
- * try growing the stack and retrying the copy.
+ * Copy the sigframe out to the user's stack.
*/
- if (copyout(&sf, sfp, sizeof(*sfp)) != 0 &&
- (grow_stack(p, (int)sfp) == 0 ||
- copyout(&sf, sfp, sizeof(*sfp)) != 0)) {
+ if (copyout(&sf, sfp, sizeof(*sfp)) != 0) {
#ifdef DEBUG
printf("process %ld has trashed its stack\n", (long)p->p_pid);
#endif
OpenPOWER on IntegriCloud