M port/devbit.c => port/devbit.c +1 -1
@@ 732,7 732,7 @@ bitread(Chan *c, void *va, long n, ulong offset)
error(Ebadblt);
for(j = 0; j < nw; j++){
if(bit.mid == 0){
- getcolor(flipping? ~j : j, &rv, &gv, &bv);
+ getcolor(flipping? nw-j-1 : j, &rv, &gv, &bv);
}else{
rv = j;
for(off = 32-l; off > 0; off -= l)
M port/fault.c => port/fault.c +5 -0
@@ 80,6 80,11 @@ fixfault(Segment *s, ulong addr, int read, int doputmmu)
if(pagedout(*pg))
pio(s, addr, soff, pg);
+ lkp = *pg;
+ lock(lkp);
+ if(lkp->image)
+ duppage(lkp);
+ unlock(lkp);
goto done;
case SG_BSS: