summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/machdep.c31
-rw-r--r--sys/amd64/amd64/vm_machdep.c13
-rw-r--r--sys/i386/i386/machdep.c31
-rw-r--r--sys/i386/i386/vm_machdep.c13
4 files changed, 50 insertions, 38 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 9139c63de269..53c1157dc911 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.283 1998/01/24 02:00:47 dyson Exp $
+ * $Id: machdep.c,v 1.284 1998/01/25 12:01:16 kato Exp $
*/
#include "apm.h"
@@ -279,6 +279,20 @@ again:
(name) = (type *)v; v = (caddr_t)((name)+(num))
#define valloclim(name, type, num, lim) \
(name) = (type *)v; v = (caddr_t)((lim) = ((name)+(num)))
+
+#ifdef BOUNCE_BUFFERS
+ /*
+ * If there is more than 16MB of memory, allocate some bounce buffers
+ */
+ if (Maxmem > 4096) {
+ if (bouncepages == 0) {
+ bouncepages = 64;
+ }
+ v = (caddr_t)((vm_offset_t)round_page(v));
+ valloc(bouncememory, char, bouncepages * PAGE_SIZE);
+ }
+#endif
+
valloc(callout, struct callout, ncallout);
valloc(callwheel, struct callout_tailq, callwheelsize);
#ifdef SYSVSHM
@@ -307,21 +321,6 @@ again:
valloc(swbuf, struct buf, nswbuf);
valloc(buf, struct buf, nbuf);
-#ifdef BOUNCE_BUFFERS
- /*
- * If there is more than 16MB of memory, allocate some bounce buffers
- */
- if (Maxmem > 4096) {
- if (bouncepages == 0) {
- bouncepages = 64;
- bouncepages += ((Maxmem - 4096) / 2048) * 32;
- if (bouncepages > 128)
- bouncepages = 128;
- }
- v = (caddr_t)((vm_offset_t)round_page(v));
- valloc(bouncememory, char, bouncepages * PAGE_SIZE);
- }
-#endif
/*
* End of first pass, size has been calculated so allocate memory
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c
index 9d70061919df..5f0d7b3adc03 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;
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 9139c63de269..53c1157dc911 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.283 1998/01/24 02:00:47 dyson Exp $
+ * $Id: machdep.c,v 1.284 1998/01/25 12:01:16 kato Exp $
*/
#include "apm.h"
@@ -279,6 +279,20 @@ again:
(name) = (type *)v; v = (caddr_t)((name)+(num))
#define valloclim(name, type, num, lim) \
(name) = (type *)v; v = (caddr_t)((lim) = ((name)+(num)))
+
+#ifdef BOUNCE_BUFFERS
+ /*
+ * If there is more than 16MB of memory, allocate some bounce buffers
+ */
+ if (Maxmem > 4096) {
+ if (bouncepages == 0) {
+ bouncepages = 64;
+ }
+ v = (caddr_t)((vm_offset_t)round_page(v));
+ valloc(bouncememory, char, bouncepages * PAGE_SIZE);
+ }
+#endif
+
valloc(callout, struct callout, ncallout);
valloc(callwheel, struct callout_tailq, callwheelsize);
#ifdef SYSVSHM
@@ -307,21 +321,6 @@ again:
valloc(swbuf, struct buf, nswbuf);
valloc(buf, struct buf, nbuf);
-#ifdef BOUNCE_BUFFERS
- /*
- * If there is more than 16MB of memory, allocate some bounce buffers
- */
- if (Maxmem > 4096) {
- if (bouncepages == 0) {
- bouncepages = 64;
- bouncepages += ((Maxmem - 4096) / 2048) * 32;
- if (bouncepages > 128)
- bouncepages = 128;
- }
- v = (caddr_t)((vm_offset_t)round_page(v));
- valloc(bouncememory, char, bouncepages * PAGE_SIZE);
- }
-#endif
/*
* End of first pass, size has been calculated so allocate memory
diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c
index 9d70061919df..5f0d7b3adc03 100644
--- a/sys/i386/i386/vm_machdep.c
+++ b/sys/i386/i386/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;