From 0dab8869adf16f425b0cbd13eef1a8df4d2823f0 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 18 Jun 2015 12:15:33 +0200 Subject: kernel: ignore memory pages with singular kernel addresses addresses va's of 0 and -BY2PG cause trouble with some memmove()/memset() implementations and possibly other code because of the nil pointer and end pointers wrapping to zero. --- sys/src/9/port/page.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sys/src') diff --git a/sys/src/9/port/page.c b/sys/src/9/port/page.c index c16044512..2b0c10eeb 100644 --- a/sys/src/9/port/page.c +++ b/sys/src/9/port/page.c @@ -36,6 +36,8 @@ pageinit(void) for(j=0; jnpage; j++){ memset(p, 0, sizeof *p); p->pa = pm->base+j*BY2PG; + if(cankaddr(p->pa) && (KADDR(p->pa) == nil || KADDR(p->pa) == (void*)-BY2PG)) + continue; p->color = color; color = (color+1)%NCOLOR; pagechainhead(p); -- cgit v1.2.3