summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-05-27 01:17:11 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-05-27 01:17:11 +0200
commit44e4aad870a525a0a99c95a18f92bfc71768692f (patch)
tree0102dbb05f29be0d304da0876c5952462d594dbc
parent410d6bea6ac0ac8d57b6c531b8829152cb503e9d (diff)
downloadplan9front-44e4aad870a525a0a99c95a18f92bfc71768692f.tar.xz
kernel: dont copy fpsave on fork, simplify freeing waitq in pexit(), remove unused semlock from Proc sturcure
-rw-r--r--sys/src/9/pc/trap.c4
-rw-r--r--sys/src/9/port/portdat.h1
-rw-r--r--sys/src/9/port/proc.c9
3 files changed, 4 insertions, 10 deletions
diff --git a/sys/src/9/pc/trap.c b/sys/src/9/pc/trap.c
index 1746e963c..a2106df45 100644
--- a/sys/src/9/pc/trap.c
+++ b/sys/src/9/pc/trap.c
@@ -734,10 +734,6 @@ syscall(Ureg* ureg)
scallnr = ureg->ax;
up->scallnr = scallnr;
- if(scallnr == RFORK && up->fpstate == FPactive){
- fpsave(&up->fpsave);
- up->fpstate = FPinactive;
- }
spllo();
up->nerrlab = 0;
diff --git a/sys/src/9/port/portdat.h b/sys/src/9/port/portdat.h
index 92e5af666..7ead18a00 100644
--- a/sys/src/9/port/portdat.h
+++ b/sys/src/9/port/portdat.h
@@ -421,7 +421,6 @@ struct Segment
Pte **map;
int mapsize;
Pte *ssegmap[SSEGMAPSIZE];
- Lock semalock;
Sema sema;
ulong mark; /* portcountrefs */
};
diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c
index 348ca1592..bbceff5ef 100644
--- a/sys/src/9/port/proc.c
+++ b/sys/src/9/port/proc.c
@@ -1067,7 +1067,7 @@ pexit(char *exitstr, int freemem)
Proc *p;
Segment **s, **es;
long utime, stime;
- Waitq *wq, *f, *next;
+ Waitq *wq;
Fgrp *fgrp;
Egrp *egrp;
Rgrp *rgrp;
@@ -1178,9 +1178,9 @@ pexit(char *exitstr, int freemem)
wakeup(&up->waitr);
unlock(&up->exl);
- for(f = up->waitq; f; f = next) {
- next = f->next;
- free(f);
+ while((wq = up->waitq) != 0){
+ up->waitq = wq->next;
+ free(wq);
}
/* release debuggers */
@@ -1374,7 +1374,6 @@ kproc(char *name, void (*func)(void *), void *arg)
p->kp = 1;
p->noswap = 1;
- p->fpsave = up->fpsave;
p->scallnr = up->scallnr;
p->s = up->s;
p->nerrlab = 0;