diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-05-10 16:54:42 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-05-10 16:54:42 +0200 |
commit | dbfec06bf1f8de922ca3af09d14675ef44ada5d2 (patch) | |
tree | 157e0375612556991e488cdc6cef84e202dc50ea /sys/src/9/port/page.c | |
parent | 0099db7b5b87adb72f1dfa69f893c41ab1c26d6e (diff) |
kernel: fix checkpages() and segflush() on SG_PHYSICAL type segments
do not touch s->map on SG_PHYSICAL type segments as they do
not have a pte map (s->mapsize == 0 && s->map == nil).
also remove the SG_PHYSICAL switch in freepte(), this is never
reached.
Diffstat (limited to 'sys/src/9/port/page.c')
-rw-r--r-- | sys/src/9/port/page.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/sys/src/9/port/page.c b/sys/src/9/port/page.c index da1950e25..a55242c4d 100644 --- a/sys/src/9/port/page.c +++ b/sys/src/9/port/page.c @@ -377,21 +377,10 @@ freepte(Segment *s, Pte *p) pg = p->first; pe = p->last; - - switch(s->type&SG_TYPE) { - case SG_PHYSICAL: - while(pg <= pe){ - if(*pg != nil && decref(*pg) == 0) - free(*pg); - pg++; - } - break; - default: - while(pg <= pe){ - if(*pg != nil) - putpage(*pg); - pg++; - } + while(pg <= pe){ + if(*pg != nil) + putpage(*pg); + pg++; } free(p); } |