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))
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to