svn commit: r367429 - in head/sys/mips: include mips

Edward Tomasz Napierala trasz at FreeBSD.org
Fri Nov 6 19:19:52 UTC 2020


Author: trasz
Date: Fri Nov  6 19:19:51 2020
New Revision: 367429
URL: https://svnweb.freebsd.org/changeset/base/367429

Log:
  Remove 'struct trapframe' pointer from mips64's 'struct syscall_args'.
  While here, use MAXARGS.  This brings its 'struct syscall_args' in sync
  with most other architectures.
  
  Reviewed by:	arichardson, brooks
  MFC after:	2 weeks
  Sponsored by:	EPSRC
  Differential Revision:	https://reviews.freebsd.org/D26619

Modified:
  head/sys/mips/include/proc.h
  head/sys/mips/mips/trap.c

Modified: head/sys/mips/include/proc.h
==============================================================================
--- head/sys/mips/include/proc.h	Fri Nov  6 19:04:20 2020	(r367428)
+++ head/sys/mips/include/proc.h	Fri Nov  6 19:19:51 2020	(r367429)
@@ -81,11 +81,11 @@ struct mdproc {
 	size_t		md_tls_tcb_offset;	/* TCB offset */
 };
 
+#define	MAXARGS		8
 struct syscall_args {
 	u_int code;
 	struct sysent *callp;
-	register_t args[8];
-	struct trapframe *trapframe;
+	register_t args[MAXARGS];
 };
 
 #ifdef __mips_n64

Modified: head/sys/mips/mips/trap.c
==============================================================================
--- head/sys/mips/mips/trap.c	Fri Nov  6 19:04:20 2020	(r367428)
+++ head/sys/mips/mips/trap.c	Fri Nov  6 19:19:51 2020	(r367429)
@@ -349,9 +349,9 @@ cpu_fetch_syscall_args(struct thread *td)
 	bzero(sa->args, sizeof(sa->args));
 
 	/* compute next PC after syscall instruction */
-	td->td_pcb->pcb_tpc = sa->trapframe->pc; /* Remember if restart */
-	if (DELAYBRANCH(sa->trapframe->cause))	 /* Check BD bit */
-		locr0->pc = MipsEmulateBranch(locr0, sa->trapframe->pc, 0, 0);
+	td->td_pcb->pcb_tpc = locr0->pc; /* Remember if restart */
+	if (DELAYBRANCH(locr0->cause))	 /* Check BD bit */
+		locr0->pc = MipsEmulateBranch(locr0, locr0->pc, 0, 0);
 	else
 		locr0->pc += sizeof(int);
 	sa->code = locr0->v0;
@@ -781,7 +781,6 @@ dofault:
 
 	case T_SYSCALL + T_USER:
 		{
-			td->td_sa.trapframe = trapframe;
 			syscallenter(td);
 
 #if !defined(SMP) && (defined(DDB) || defined(DEBUG))


More information about the svn-src-all mailing list