Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-4]: src/sys/arch/vax/vax Apply patch (requested by ragge):



details:   https://anonhg.NetBSD.org/src/rev/c0f3f41d92ee
branches:  netbsd-1-4
changeset: 470217:c0f3f41d92ee
user:      he <he%NetBSD.org@localhost>
date:      Mon Jan 31 19:22:56 2000 +0000

description:
Apply patch (requested by ragge):
  Fix a problem when the system goes out of free pages.

diffstat:

 sys/arch/vax/vax/pmap.c |  14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diffs (28 lines):

diff -r efac833f94d7 -r c0f3f41d92ee sys/arch/vax/vax/pmap.c
--- a/sys/arch/vax/vax/pmap.c   Mon Jan 31 19:19:53 2000 +0000
+++ b/sys/arch/vax/vax/pmap.c   Mon Jan 31 19:22:56 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.61.2.1 1999/07/12 19:24:42 perry Exp $         */
+/*     $NetBSD: pmap.c,v 1.61.2.2 2000/01/31 19:22:56 he Exp $    */
 /*
  * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden.
  * All rights reserved.
@@ -624,9 +624,15 @@
                        paddr_t phys;
                        struct vm_page *pg;
 
-                       pg = uvm_pagealloc(NULL, 0, NULL, 0);
-                       if (pg == NULL)
-                               panic("pmap_ptefault"); /* XXX */
+                       for (;;) {
+                               pg = uvm_pagealloc(NULL, 0, NULL, 0);
+                               if (pg != NULL)
+                                       break;
+                               if (pmap == pmap_kernel())
+                                       panic("pmap_enter: no free pages");
+                               else
+                                       uvm_wait("pmap_enter");
+                       }
                        phys = VM_PAGE_TO_PHYS(pg);
                        bzero((caddr_t)(phys|KERNBASE), NBPG);
                        pmap_kenter_pa(ptaddr, phys,



Home | Main Index | Thread Index | Old Index