summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/vm_machdep.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1998-01-30 10:26:26 +0000
committerdyson <dyson@FreeBSD.org>1998-01-30 10:26:26 +0000
commitbd0dfc98dbaec16bd726143f3b44c1c0cd4f175d (patch)
tree99e20ad93e3c195fc2cb6f16a9d7178ce7b0d713 /sys/amd64/amd64/vm_machdep.c
parent2f0c56242f625d905230ebb6537e296204ef03c0 (diff)
downloadFreeBSD-src-bd0dfc98dbaec16bd726143f3b44c1c0cd4f175d.zip
FreeBSD-src-bd0dfc98dbaec16bd726143f3b44c1c0cd4f175d.tar.gz
Make the bounce buffer code a little more robust when space isn't
available. If there isn't bounce space available, the bounce code is disabled. This will allow most large systems to run properly when the bounce space is mistakenly allocated above 16MB.
Diffstat (limited to 'sys/amd64/amd64/vm_machdep.c')
-rw-r--r--sys/amd64/amd64/vm_machdep.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c
index 9d70061..5f0d7b3 100644
--- a/sys/amd64/amd64/vm_machdep.c
+++ b/sys/amd64/amd64/vm_machdep.c
@@ -38,7 +38,7 @@
*
* from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
* Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $Id: vm_machdep.c,v 1.95 1998/01/19 04:16:16 tegge Exp $
+ * $Id: vm_machdep.c,v 1.96 1998/01/22 17:29:32 dyson Exp $
*/
#include "npx.h"
@@ -535,8 +535,15 @@ vm_bounce_init()
for(i=0;i<bouncepages;i++) {
vm_offset_t pa;
- if( (pa = pmap_kextract((vm_offset_t) bouncememory + i * PAGE_SIZE)) >= SIXTEENMEG)
- panic("bounce memory out of range");
+ if( (pa = pmap_kextract((vm_offset_t) bouncememory + i * PAGE_SIZE)) >= SIXTEENMEG) {
+ printf("vm_bounce_init: bounce memory out of range -- bounce disabled\n");
+ free(bounceallocarray, M_TEMP);
+ bounceallocarray = NULL;
+ free(bouncepa, M_TEMP);
+ bouncepa = NULL;
+ bouncepages = 0;
+ break;
+ }
if( pa == 0)
panic("bounce memory not resident");
bouncepa[i] = pa;
OpenPOWER on IntegriCloud