summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornathanw <nathanw@NetBSD.org>2002-09-21 00:29:04 +0000
committernathanw <nathanw@NetBSD.org>2002-09-21 00:29:04 +0000
commit2cab03d64ae9761f6256d4e60da4722908bd0c61 (patch)
treeacb717142898e6776e778ce9cb20be15acafbb87
parent914a9c522b9510139a8e726e56d2871a06b2e0a2 (diff)
In the fault handler, record growth of the stack, so that core dumps
actually contain the entire stack.
-rw-r--r--sys/arch/arm/arm32/fault.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/arch/arm/arm32/fault.c b/sys/arch/arm/arm32/fault.c
index 6e4414d0950..342005b1047 100644
--- a/sys/arch/arm/arm32/fault.c
+++ b/sys/arch/arm/arm32/fault.c
@@ -1,4 +1,4 @@
-/* $NetBSD: fault.c,v 1.22 2002/08/14 21:52:36 briggs Exp $ */
+/* $NetBSD: fault.c,v 1.23 2002/09/21 00:29:04 nathanw Exp $ */
/*
* Copyright (c) 1994-1997 Mark Brinicombe.
@@ -47,7 +47,7 @@
#include "opt_pmap_debug.h"
#include <sys/types.h>
-__KERNEL_RCSID(0, "$NetBSD: fault.c,v 1.22 2002/08/14 21:52:36 briggs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fault.c,v 1.23 2002/09/21 00:29:04 nathanw Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -513,9 +513,11 @@ copyfault:
pcb->pcb_onfault = NULL;
rv = uvm_fault(map, va, 0, ftype);
pcb->pcb_onfault = onfault;
- if (rv == 0)
+ if (rv == 0) {
+ if (user != 0) /* Record any stack growth... */
+ uvm_grow(p, trunc_page(va));
goto out;
-
+ }
if (user == 0) {
if (pcb->pcb_onfault) {
frame->tf_r0 = rv;