summaryrefslogtreecommitdiff
path: root/sys/src/9/port/page.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-05-10 16:54:42 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-05-10 16:54:42 +0200
commitdbfec06bf1f8de922ca3af09d14675ef44ada5d2 (patch)
tree157e0375612556991e488cdc6cef84e202dc50ea /sys/src/9/port/page.c
parent0099db7b5b87adb72f1dfa69f893c41ab1c26d6e (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.c19
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);
}