ref: e6971819018aefe7c2e0ab60f75e546f441e59be
parent: a1063e2dc019b900780870934419967146f2f03d
author: cinap_lenrek <cinap_lenrek@localhost>
date: Mon Jun 27 02:47:18 EDT 2011
kernel: fix issue #62 (vunmap bug) reported from http://9fans.net/archive/2011/06/262
--- a/sys/src/9/pc/mmu.c
+++ b/sys/src/9/pc/mmu.c
@@ -739,16 +739,13 @@
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));
--
⑨