diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c index 0f5f6f992..111fec5fa 100644 --- a/sys/src/9/port/proc.c +++ b/sys/src/9/port/proc.c @@ -1552,11 +1552,17 @@ killbig(char *why) kp->procctl = Proc_exitbig; for(i = 0; i < NSEG; i++) { s = kp->seg[i]; - if(s != nil) { - qlock(s); - mfreeseg(s, s->base, (s->top - s->base)/BY2PG); - qunlock(s); + if(s == nil) + continue; + switch(s->type & SG_TYPE){ + case SG_SHARED: + case SG_PHYSICAL: + case SG_FIXED: + continue; } + qlock(s); + mfreeseg(s, s->base, (s->top - s->base)/BY2PG); + qunlock(s); } qunlock(&kp->seglock); }