diff options
author | 2000-04-25 23:10:30 +0000 | |
---|---|---|
committer | 2000-04-25 23:10:30 +0000 | |
commit | 466dd0605bb08861d61915184724e8ea79fb2962 (patch) | |
tree | 574a08438c4160339ed7b63ee755b004fc5cb184 | |
parent | Use CIRCLEQ_FOREACH (diff) | |
download | wireguard-openbsd-466dd0605bb08861d61915184724e8ea79fb2962.tar.xz wireguard-openbsd-466dd0605bb08861d61915184724e8ea79fb2962.zip |
A fix to the dreaded isadmaattach panic which hunts people playing with
large memory machines. This time I really hope we can continue quite a bit
away over the Gig.
-rw-r--r-- | sys/arch/i386/include/vmparam.h | 4 | ||||
-rw-r--r-- | sys/uvm/uvm_page.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/sys/arch/i386/include/vmparam.h b/sys/arch/i386/include/vmparam.h index 36bd525296a..4f3dc049f8c 100644 --- a/sys/arch/i386/include/vmparam.h +++ b/sys/arch/i386/include/vmparam.h @@ -1,4 +1,4 @@ -/* $OpenBSD: vmparam.h,v 1.14 1999/10/03 21:08:16 niklas Exp $ */ +/* $OpenBSD: vmparam.h,v 1.15 2000/04/25 23:10:31 niklas Exp $ */ /* $NetBSD: vmparam.h,v 1.15 1994/10/27 04:16:34 cgd Exp $ */ /*- @@ -145,7 +145,7 @@ #define MACHINE_NEW_NONCONTIG /* VM <=> pmap interface modifier */ #define VM_PHYSSEG_MAX 4 /* actually we could have this many segments */ -#define VM_PHYSSEG_STRAT VM_PSTRAT_BIGFIRST +#define VM_PHYSSEG_STRAT VM_PSTRAT_BSEARCH #define VM_PHYSSEG_NOADD /* can't add RAM after vm_mem_init */ #define VM_NFREELIST 2 diff --git a/sys/uvm/uvm_page.c b/sys/uvm/uvm_page.c index c60017de35b..d6dbe2a9294 100644 --- a/sys/uvm/uvm_page.c +++ b/sys/uvm/uvm_page.c @@ -472,7 +472,8 @@ uvm_page_physget(paddrp) int lcv, x; /* pass 1: try allocating from a matching end */ -#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST) +#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST) || \ + (VM_PHYSSEG_STRAT == VM_PSTRAT_BSEARCH) for (lcv = vm_nphysseg - 1 ; lcv >= 0 ; lcv--) #else for (lcv = 0 ; lcv < vm_nphysseg ; lcv++) @@ -522,7 +523,8 @@ uvm_page_physget(paddrp) } /* pass2: forget about matching ends, just allocate something */ -#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST) +#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST) || \ + (VM_PHYSSEG_STRAT == VM_PSTRAT_BSEARCH) for (lcv = vm_nphysseg - 1 ; lcv >= 0 ; lcv--) #else for (lcv = 0 ; lcv < vm_nphysseg ; lcv++) |