Date: Wed, 22 Jun 2005 21:51:02 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 78823 for review Message-ID: <200506222151.j5MLp2XY076736@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506222151.j5MLp2XY076736>