From b18a6413975a0a8d06e6d310072a0ff90b1ed541 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 9 Nov 2014 08:19:28 +0100 Subject: [PATCH] kernel: remove implicit Proc* argument from procctl() procctl() is always called with up and it would not work correctly if passed a different process, so remove the Proc* argument and use up directly. --- sys/src/9/alphapc/trap.c | 2 +- sys/src/9/bitsy/trap.c | 2 +- sys/src/9/kw/syscall.c | 6 +++--- sys/src/9/mtx/trap.c | 2 +- sys/src/9/omap/syscall.c | 8 ++++---- sys/src/9/omap4/trap.c | 6 +++--- sys/src/9/pc/trap.c | 6 +++--- sys/src/9/pc64/trap.c | 6 +++--- sys/src/9/port/fault.c | 2 +- sys/src/9/port/portfns.h | 2 +- sys/src/9/port/proc.c | 26 +++++++++++++------------- sys/src/9/ppc/trap.c | 2 +- sys/src/9/teg2/syscall.c | 8 ++++---- sys/src/9/xen/trap.c | 8 ++++---- 14 files changed, 43 insertions(+), 43 deletions(-) diff --git a/sys/src/9/alphapc/trap.c b/sys/src/9/alphapc/trap.c index a879ab6ca..07d4ea3a7 100644 --- a/sys/src/9/alphapc/trap.c +++ b/sys/src/9/alphapc/trap.c @@ -519,7 +519,7 @@ notify(Ureg *ur) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; diff --git a/sys/src/9/bitsy/trap.c b/sys/src/9/bitsy/trap.c index fd0644f6b..188e5e065 100644 --- a/sys/src/9/bitsy/trap.c +++ b/sys/src/9/bitsy/trap.c @@ -679,7 +679,7 @@ notify(Ureg* ureg) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; diff --git a/sys/src/9/kw/syscall.c b/sys/src/9/kw/syscall.c index 8ef7a0edf..555d767ee 100644 --- a/sys/src/9/kw/syscall.c +++ b/sys/src/9/kw/syscall.c @@ -104,7 +104,7 @@ notify(Ureg* ureg) NFrame *nf; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; @@ -210,7 +210,7 @@ syscall(Ureg* ureg) syscallfmt(scallnr, ureg->pc, (va_list)up->s.args); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); startns = todget(nil); } @@ -253,7 +253,7 @@ syscall(Ureg* ureg) sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); } diff --git a/sys/src/9/mtx/trap.c b/sys/src/9/mtx/trap.c index 022ec4903..f3e9f2e46 100644 --- a/sys/src/9/mtx/trap.c +++ b/sys/src/9/mtx/trap.c @@ -701,7 +701,7 @@ notify(Ureg* ur) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; diff --git a/sys/src/9/omap/syscall.c b/sys/src/9/omap/syscall.c index 0a3916690..224ee2c29 100644 --- a/sys/src/9/omap/syscall.c +++ b/sys/src/9/omap/syscall.c @@ -104,7 +104,7 @@ notify(Ureg* ureg) NFrame *nf; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; @@ -196,7 +196,7 @@ syscall(Ureg* ureg) if(up->procctl == Proc_tracesyscall){ up->procctl = Proc_stopme; - procctl(up); + procctl(); } scallnr = ureg->r0; @@ -247,9 +247,9 @@ syscall(Ureg* ureg) ureg->r0 = ret; if(up->procctl == Proc_tracesyscall){ - up->procctl = Proc_stopme; s = splhi(); - procctl(up); + up->procctl = Proc_stopme; + procctl(); splx(s); } diff --git a/sys/src/9/omap4/trap.c b/sys/src/9/omap4/trap.c index 11f95b4c5..4e1cf7fdd 100644 --- a/sys/src/9/omap4/trap.c +++ b/sys/src/9/omap4/trap.c @@ -140,7 +140,7 @@ notify(Ureg *ureg) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; s = spllo(); @@ -337,7 +337,7 @@ syscall(Ureg *ureg) syscallfmt(scall, ureg->pc, (va_list)up->s.args); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); startns = todget(nil); } @@ -362,7 +362,7 @@ syscall(Ureg *ureg) sysretfmt(scall, (va_list)up->s.args, ret, startns, stopns); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); } diff --git a/sys/src/9/pc/trap.c b/sys/src/9/pc/trap.c index 38f6e0b0f..a12b65b4d 100644 --- a/sys/src/9/pc/trap.c +++ b/sys/src/9/pc/trap.c @@ -743,7 +743,7 @@ syscall(Ureg* ureg) syscallfmt(scallnr, ureg->pc, (va_list)up->s.args); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); startns = todget(nil); } @@ -786,7 +786,7 @@ syscall(Ureg* ureg) sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); } @@ -818,7 +818,7 @@ notify(Ureg* ureg) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; diff --git a/sys/src/9/pc64/trap.c b/sys/src/9/pc64/trap.c index 71374b418..803bea9b6 100644 --- a/sys/src/9/pc64/trap.c +++ b/sys/src/9/pc64/trap.c @@ -705,7 +705,7 @@ syscall(Ureg* ureg) syscallfmt(scallnr, ureg->pc, (va_list)up->s.args); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); startns = todget(nil); } @@ -745,7 +745,7 @@ syscall(Ureg* ureg) sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns); s = splhi(); up->procctl = Proc_stopme; - procctl(up); + procctl(); splx(s); } @@ -789,7 +789,7 @@ notify(Ureg* ureg) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; diff --git a/sys/src/9/port/fault.c b/sys/src/9/port/fault.c index 0fd6b2e97..478e29f3d 100644 --- a/sys/src/9/port/fault.c +++ b/sys/src/9/port/fault.c @@ -47,7 +47,7 @@ fault(uintptr addr, int read) switch(up->procctl){ case Proc_exitme: case Proc_exitbig: - procctl(up); + procctl(); } } diff --git a/sys/src/9/port/portfns.h b/sys/src/9/port/portfns.h index 8215dc8f2..4849a5f8d 100644 --- a/sys/src/9/port/portfns.h +++ b/sys/src/9/port/portfns.h @@ -222,7 +222,7 @@ int preempted(void); void prflush(void); void printinit(void); ulong procalarm(ulong); -void procctl(Proc*); +void procctl(void); void procdump(void); int procfdprint(Chan*, int, int, char*, int); void procflushseg(Segment*); diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c index 9a9649d9f..0f5f6f992 100644 --- a/sys/src/9/port/proc.c +++ b/sys/src/9/port/proc.c @@ -1420,12 +1420,12 @@ kproc(char *name, void (*func)(void *), void *arg) * reasoning. */ void -procctl(Proc *p) +procctl(void) { char *state; ulong s; - switch(p->procctl) { + switch(up->procctl) { case Proc_exitbig: spllo(); pprint("Killed: Insufficient physical memory\n"); @@ -1436,26 +1436,26 @@ procctl(Proc *p) pexit("Killed", 1); case Proc_traceme: - if(p->nnote == 0) + if(up->nnote == 0) return; /* No break */ case Proc_stopme: - p->procctl = 0; - state = p->psstate; - p->psstate = "Stopped"; + up->procctl = 0; + state = up->psstate; + up->psstate = "Stopped"; /* free a waiting debugger */ s = spllo(); - qlock(&p->debug); - if(p->pdbg != nil) { - wakeup(&p->pdbg->sleep); - p->pdbg = nil; + qlock(&up->debug); + if(up->pdbg != nil) { + wakeup(&up->pdbg->sleep); + up->pdbg = nil; } - qunlock(&p->debug); + qunlock(&up->debug); splhi(); - p->state = Stopped; + up->state = Stopped; sched(); - p->psstate = state; + up->psstate = state; splx(s); return; } diff --git a/sys/src/9/ppc/trap.c b/sys/src/9/ppc/trap.c index 1dca77482..64decfae2 100644 --- a/sys/src/9/ppc/trap.c +++ b/sys/src/9/ppc/trap.c @@ -706,7 +706,7 @@ notify(Ureg* ur) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; diff --git a/sys/src/9/teg2/syscall.c b/sys/src/9/teg2/syscall.c index 3a1b42b0e..4bdfc4edb 100644 --- a/sys/src/9/teg2/syscall.c +++ b/sys/src/9/teg2/syscall.c @@ -110,7 +110,7 @@ notify(Ureg* ureg) NFrame *nf; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0; @@ -221,7 +221,7 @@ syscall(Ureg* ureg) syscallfmt(scallnr, ureg->pc, (va_list)(sp+BY2WD)); up->procctl = Proc_stopme; - procctl(up); + procctl(); if (up->syscalltrace) free(up->syscalltrace); up->syscalltrace = nil; @@ -274,10 +274,10 @@ syscall(Ureg* ureg) if(up->procctl == Proc_tracesyscall){ stopns = todget(nil); - up->procctl = Proc_stopme; sysretfmt(scallnr, (va_list)(sp+BY2WD), ret, startns, stopns); s = splhi(); - procctl(up); + up->procctl = Proc_stopme; + procctl(); splx(s); if(up->syscalltrace) free(up->syscalltrace); diff --git a/sys/src/9/xen/trap.c b/sys/src/9/xen/trap.c index b47fc2c47..ddbb9c101 100644 --- a/sys/src/9/xen/trap.c +++ b/sys/src/9/xen/trap.c @@ -690,7 +690,7 @@ syscall(Ureg* ureg) if(up->procctl == Proc_tracesyscall){ up->procctl = Proc_stopme; - procctl(up); + procctl(); } scallnr = ureg->ax; @@ -746,9 +746,9 @@ syscall(Ureg* ureg) ureg->ax = ret; if(up->procctl == Proc_tracesyscall){ - up->procctl = Proc_stopme; s = splhi(); - procctl(up); + up->procctl = Proc_stopme; + procctl(); splx(s); } @@ -781,7 +781,7 @@ notify(Ureg* ureg) Note *n; if(up->procctl) - procctl(up); + procctl(); if(up->nnote == 0) return 0;