summaryrefslogtreecommitdiffstats
path: root/sys/i386/i386
diff options
context:
space:
mode:
authorLuiz Souza <luiz@netgate.com>2018-02-21 14:26:22 -0300
committerLuiz Souza <luiz@netgate.com>2018-02-21 14:26:22 -0300
commit4c9907d21517c211b27a3cf5b7a2a976623820cc (patch)
treee6d44f1e5491e491582dc98d2ad92231d99257c5 /sys/i386/i386
parent911d650e1367dc4a6ac7feb96f47fc87fd6a4984 (diff)
downloadFreeBSD-src-4c9907d21517c211b27a3cf5b7a2a976623820cc.zip
FreeBSD-src-4c9907d21517c211b27a3cf5b7a2a976623820cc.tar.gz
Revert "MFC r319873:"
This reverts commit 5dad0dd804a33b8a372d49fa342b24c67b1c2fb3.
Diffstat (limited to 'sys/i386/i386')
-rw-r--r--sys/i386/i386/trap.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c
index 3c8f4b5..7c16b24 100644
--- a/sys/i386/i386/trap.c
+++ b/sys/i386/i386/trap.c
@@ -1012,18 +1012,16 @@ dblfault_handler()
}
int
-cpu_fetch_syscall_args(struct thread *td)
+cpu_fetch_syscall_args(struct thread *td, struct syscall_args *sa)
{
struct proc *p;
struct trapframe *frame;
- struct syscall_args *sa;
caddr_t params;
long tmp;
int error;
p = td->td_proc;
frame = td->td_frame;
- sa = &td->td_sa;
params = (caddr_t)frame->tf_esp + sizeof(int);
sa->code = frame->tf_eax;
@@ -1084,6 +1082,7 @@ void
syscall(struct trapframe *frame)
{
struct thread *td;
+ struct syscall_args sa;
register_t orig_tf_eflags;
int error;
ksiginfo_t ksi;
@@ -1100,7 +1099,7 @@ syscall(struct trapframe *frame)
td = curthread;
td->td_frame = frame;
- error = syscallenter(td);
+ error = syscallenter(td, &sa);
/*
* Traced syscall.
@@ -1116,10 +1115,10 @@ syscall(struct trapframe *frame)
KASSERT(PCB_USER_FPU(td->td_pcb),
("System call %s returning with kernel FPU ctx leaked",
- syscallname(td->td_proc, td->td_sa.code)));
+ syscallname(td->td_proc, sa.code)));
KASSERT(td->td_pcb->pcb_save == get_pcb_user_save_td(td),
("System call %s returning with mangled pcb_save",
- syscallname(td->td_proc, td->td_sa.code)));
+ syscallname(td->td_proc, sa.code)));
- syscallret(td, error);
+ syscallret(td, error, &sa);
}
OpenPOWER on IntegriCloud