From owner-p4-projects@FreeBSD.ORG Thu Jul 3 16:20:34 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3E5BD37B404; Thu, 3 Jul 2003 16:20:34 -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 EB0F237B401 for ; Thu, 3 Jul 2003 16:20:33 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 94BB84400E for ; Thu, 3 Jul 2003 16:20:33 -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 h63NKX0U053289 for ; Thu, 3 Jul 2003 16:20:33 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h63NKXS0053282 for perforce@freebsd.org; Thu, 3 Jul 2003 16:20:33 -0700 (PDT) Date: Thu, 3 Jul 2003 16:20:33 -0700 (PDT) Message-Id: <200307032320.h63NKXS0053282@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 34043 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: Thu, 03 Jul 2003 23:20:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=34043 Change 34043 by peter@peter_daintree on 2003/07/03 16:20:01 Deal with large pages in pmap_pte(). This kinda sucks, but other code expects it. More to the point, the i386 code intentionally didn't test for the PG_PS case since it knew that pmap_pte* on i386 would return the pde for a large page case. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#23 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#23 (text+ko) ==== @@ -330,6 +330,8 @@ pde = pmap_pde(pmap, va); if (pde == NULL || (*pde & PG_V) == 0) return NULL; + if ((*pde & PG_PS) != 0) /* compat with i386 pmap_pte() */ + return ((pt_entry_t *)pde); pte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME); return (&pte[pmap_pte_index(va)]); }