From owner-p4-projects@FreeBSD.ORG Wed Jun 22 21:51:03 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4EB7B16A420; Wed, 22 Jun 2005 21:51:03 +0000 (GMT) X-Original-To: perforce@freebsd.org 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 1D0CB16A41C for ; Wed, 22 Jun 2005 21:51:03 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0AE8B43D1D for ; Wed, 22 Jun 2005 21:51:03 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j5MLp2ki076739 for ; Wed, 22 Jun 2005 21:51:02 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j5MLp2XY076736 for perforce@freebsd.org; Wed, 22 Jun 2005 21:51:02 GMT (envelope-from peter@freebsd.org) Date: Wed, 22 Jun 2005 21:51:02 GMT Message-Id: <200506222151.j5MLp2XY076736@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 Cc: Subject: PERFORCE change 78823 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Jun 2005 21:51:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=78823 Change 78823 by peter@peter_melody on 2005/06/22 21:51:01 Fix some more oops!'s in the kvm code. 1) store PML4 pointer in the right struct 2) don't forget to do the pa2ofs thing for returned values Affected files ... .. //depot/projects/hammer/lib/libkvm/kvm_amd64.c#10 edit Differences ... ==== //depot/projects/hammer/lib/libkvm/kvm_amd64.c#10 (text+ko) ==== @@ -141,7 +141,6 @@ int _kvm_initvtop(kvm_t *kd) { - struct vmstate *vm; struct nlist nlist[2]; u_long pa; u_long kernbase; @@ -149,12 +148,12 @@ Elf_Ehdr *ehdr; size_t hdrsz; - kd->vmst = (struct vmstate *)_kvm_malloc(kd, sizeof(*vm)); + kd->vmst = (struct vmstate *)_kvm_malloc(kd, sizeof(*kd->vmst)); if (kd->vmst == 0) { _kvm_err(kd, kd->program, "cannot allocate vm"); return (-1); } - vm->PML4 = 0; + kd->vmst->PML4 = 0; if (_kvm_maphdrs(kd, sizeof(Elf_Ehdr)) == -1) return (-1); @@ -190,7 +189,7 @@ _kvm_err(kd, kd->program, "cannot read KPML4phys"); return (-1); } - vm->PML4 = PML4; + kd->vmst->PML4 = PML4; return (0); } @@ -283,6 +282,7 @@ #define PAGE2M_MASK (NBPDR - 1) #define PG_FRAME2M (~PAGE2M_MASK) *pa = ((u_long)pde & PG_FRAME2M) + (va & PAGE2M_MASK); + _kvm_pa2off(kd, *pa, pa); return (NBPDR - (va & PAGE2M_MASK)); } @@ -306,6 +306,7 @@ goto invalid; *pa = ((u_long)pte & PG_FRAME) + offset; + _kvm_pa2off(kd, *pa, pa); return (PAGE_SIZE - offset); invalid: