diff options
author | dyson <dyson@FreeBSD.org> | 1998-01-30 10:26:26 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1998-01-30 10:26:26 +0000 |
commit | bd0dfc98dbaec16bd726143f3b44c1c0cd4f175d (patch) | |
tree | 99e20ad93e3c195fc2cb6f16a9d7178ce7b0d713 /sys/amd64/amd64/vm_machdep.c | |
parent | 2f0c56242f625d905230ebb6537e296204ef03c0 (diff) | |
download | FreeBSD-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.c | 13 |
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; |