shithub: riscv

Download patch

ref: b18a6413975a0a8d06e6d310072a0ff90b1ed541
parent: 1ffcdbab88aca698161b34096934e196370b3a21
author: cinap_lenrek <[email protected]>
date: Sun Nov 9 03:19:28 EST 2014

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.

--- a/sys/src/9/alphapc/trap.c
+++ b/sys/src/9/alphapc/trap.c
@@ -519,7 +519,7 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
--- a/sys/src/9/bitsy/trap.c
+++ b/sys/src/9/bitsy/trap.c
@@ -679,7 +679,7 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
--- a/sys/src/9/kw/syscall.c
+++ b/sys/src/9/kw/syscall.c
@@ -104,7 +104,7 @@
 	NFrame *nf;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
@@ -210,7 +210,7 @@
 			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 @@
 		sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns);
 		s = splhi();
 		up->procctl = Proc_stopme;
-		procctl(up);
+		procctl();
 		splx(s);
 	}
 
--- a/sys/src/9/mtx/trap.c
+++ b/sys/src/9/mtx/trap.c
@@ -701,7 +701,7 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
--- a/sys/src/9/omap/syscall.c
+++ b/sys/src/9/omap/syscall.c
@@ -104,7 +104,7 @@
 	NFrame *nf;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
@@ -196,7 +196,7 @@
 
 	if(up->procctl == Proc_tracesyscall){
 		up->procctl = Proc_stopme;
-		procctl(up);
+		procctl();
 	}
 
 	scallnr = ureg->r0;
@@ -247,9 +247,9 @@
 	ureg->r0 = ret;
 
 	if(up->procctl == Proc_tracesyscall){
-		up->procctl = Proc_stopme;
 		s = splhi();
-		procctl(up);
+		up->procctl = Proc_stopme;
+		procctl();
 		splx(s);
 	}
 
--- a/sys/src/9/omap4/trap.c
+++ b/sys/src/9/omap4/trap.c
@@ -140,7 +140,7 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 	s = spllo();
@@ -337,7 +337,7 @@
 			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 @@
 		sysretfmt(scall, (va_list)up->s.args, ret, startns, stopns);
 		s = splhi();
 		up->procctl = Proc_stopme;
-		procctl(up);
+		procctl();
 		splx(s);
 	}
 
--- a/sys/src/9/pc/trap.c
+++ b/sys/src/9/pc/trap.c
@@ -743,7 +743,7 @@
 			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 @@
 		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 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
--- a/sys/src/9/pc64/trap.c
+++ b/sys/src/9/pc64/trap.c
@@ -705,7 +705,7 @@
 			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 @@
 		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 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
--- a/sys/src/9/port/fault.c
+++ b/sys/src/9/port/fault.c
@@ -47,7 +47,7 @@
 		switch(up->procctl){
 		case Proc_exitme:
 		case Proc_exitbig:
-			procctl(up);
+			procctl();
 		}
 	}
 
--- a/sys/src/9/port/portfns.h
+++ b/sys/src/9/port/portfns.h
@@ -222,7 +222,7 @@
 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*);
--- a/sys/src/9/port/proc.c
+++ b/sys/src/9/port/proc.c
@@ -1420,12 +1420,12 @@
  *  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 @@
 		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;
 	}
--- a/sys/src/9/ppc/trap.c
+++ b/sys/src/9/ppc/trap.c
@@ -706,7 +706,7 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
--- a/sys/src/9/teg2/syscall.c
+++ b/sys/src/9/teg2/syscall.c
@@ -110,7 +110,7 @@
 	NFrame *nf;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;
 
@@ -221,7 +221,7 @@
 
 		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 @@
 
 	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);
--- a/sys/src/9/xen/trap.c
+++ b/sys/src/9/xen/trap.c
@@ -690,7 +690,7 @@
 
 	if(up->procctl == Proc_tracesyscall){
 		up->procctl = Proc_stopme;
-		procctl(up);
+		procctl();
 	}
 
 	scallnr = ureg->ax;
@@ -746,9 +746,9 @@
 	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 @@
 	Note *n;
 
 	if(up->procctl)
-		procctl(up);
+		procctl();
 	if(up->nnote == 0)
 		return 0;