diff options
| -rw-r--r-- | sys/src/9/pc64/mmu.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/src/9/pc64/mmu.c b/sys/src/9/pc64/mmu.c index af7b0eebb..c89dbf861 100644 --- a/sys/src/9/pc64/mmu.c +++ b/sys/src/9/pc64/mmu.c @@ -339,17 +339,13 @@ mmuzap(void) m->mmumap[PTLX(TSTKTOP, 3)/MAPBITS] &= ~(1ull<<(PTLX(TSTKTOP, 3)%MAPBITS)); for(i = 0; i < nelem(m->mmumap); pte += MAPBITS, i++){ - w = m->mmumap[i]; - if(w == 0) + if((w = m->mmumap[i]) == 0) continue; - x = 0; - do { + m->mmumap[i] = 0; + for(x = 0; w != 0; w >>= 1, x++){ if(w & 1) pte[x] = 0; - x++; - w >>= 1; - } while(w); - m->mmumap[i] = 0; + } } } |
