From owner-p4-projects@FreeBSD.ORG Tue Apr 22 14:36:50 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6029E37B408; Tue, 22 Apr 2003 14:36:49 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0AF9C37B404 for ; Tue, 22 Apr 2003 14:36:49 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A7A3243FBF for ; Tue, 22 Apr 2003 14:36:48 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h3MLam0U013184 for ; Tue, 22 Apr 2003 14:36:48 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h3MLalMs013176 for perforce@freebsd.org; Tue, 22 Apr 2003 14:36:47 -0700 (PDT) Date: Tue, 22 Apr 2003 14:36:47 -0700 (PDT) Message-Id: <200304222136.h3MLalMs013176@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 29457 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Apr 2003 21:36:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=29457 Change 29457 by peter@peter_overcee on 2003/04/22 14:35:55 Do not block out userland access at the PDP level, because this cuts off userland access entirely. Seperate out the recursive wiring and the pdp setup so that being too clever doesn't hide mistakes like I fixed above. Affected files ... .. //depot/projects/hammer/sys/x86_64/x86_64/pmap.c#23 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/x86_64/pmap.c#23 (text+ko) ==== @@ -1071,9 +1071,14 @@ for (i = 0; i < NPGPTD; i++) { pa = VM_PAGE_TO_PHYS(ptdpg[i]); pmap->pm_pdir[PTDPTDI + i] = pa | PG_V | PG_RW | PG_A | PG_M; - pmap->pm_pdp[i] = pa | PG_RW | PG_V; + } + /* Connect ptd pages to pdp */ + for (i = 0; i < NPGPTD; i++) { + pa = VM_PAGE_TO_PHYS(ptdpg[i]); + pmap->pm_pdp[i] = pa | PG_RW | PG_V | PG_U; } - pmap->pm_pml4[0] = VM_PAGE_TO_PHYS(pdppg) | PG_RW | PG_V; + /* connect pdp to pml4 */ + pmap->pm_pml4[0] = VM_PAGE_TO_PHYS(pdppg) | PG_RW | PG_V | PG_U; pmap->pm_active = 0; TAILQ_INIT(&pmap->pm_pvlist);