PERFORCE change 78823 for review
Peter Wemm
peter at FreeBSD.org
Wed Jun 22 21:51:04 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=78823
Change 78823 by peter at 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:
More information about the p4-projects
mailing list