--- /sys/src/9k/port/page.c +++ /sys/src/9k/port/page.c @@ -257,7 +257,7 @@ newpage(int clear, Segment *s, uintptr va, int locked) if(clear) { k = kmap(p); - memset((void*)VA(k), 0, 1<lg2size); + memset((void*)VA(k), 0, pagesize(p)); kunmap(k); } @@ -427,7 +427,7 @@ copypage(Page *f, Page *t) panic("copypage"); ks = kmap(f); kd = kmap(t); - memmove((void*)VA(kd), (void*)VA(ks), 1<lg2size); + memmove((void*)VA(kd), (void*)VA(ks), pagesize(t)); kunmap(ks); kunmap(kd); } --- /sys/src/9k/port/portdat.h +++ /sys/src/9k/port/portdat.h @@ -325,6 +325,8 @@ struct Page Page *hash; /* Image hash chains */ }; +#define pagesize(p) (1<<(p)->lg2size) + struct Image { Ref;