diff options
| -rw-r--r-- | sys/src/9/pc/mmu.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sys/src/9/pc/mmu.c b/sys/src/9/pc/mmu.c index 06b195fca..823c9a6d8 100644 --- a/sys/src/9/pc/mmu.c +++ b/sys/src/9/pc/mmu.c @@ -739,16 +739,13 @@ pdbunmap(ulong *pdb, ulong va, int size) vae = va+size; while(va < vae){ table = &pdb[PDX(va)]; - if(!(*table & PTEVALID)){ + if(!(*table & PTEVALID)) panic("vunmap: not mapped"); - /* - va = (va+4*MB-1) & ~(4*MB-1); - continue; - */ - } if(*table & PTESIZE){ + if(va & 4*MB-1) + panic("vunmap: misaligned: %#p\n", va); *table = 0; - va = (va+4*MB-1) & ~(4*MB-1); + va += 4*MB; continue; } table = KADDR(PPN(*table)); |
