diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c index c69e33958490..560f8a34b775 100644 --- a/sys/pc98/i386/machdep.c +++ b/sys/pc98/i386/machdep.c @@ -42,6 +42,7 @@ #include "ether.h" #include "npx.h" #include "opt_atalk.h" +#include "opt_compat.h" #include "opt_cpu.h" #include "opt_ddb.h" #include "opt_inet.h" @@ -921,7 +922,8 @@ sigreturn(p, uap) vm86->vm86_eflags = eflags; /* save VIF, VIP */ eflags = (tf->tf_eflags & ~VM_USERCHANGE) | (eflags & VM_USERCHANGE) | PSL_VM; } - bcopy(&ucp->uc_mcontext.mc_fs, regs, sizeof(struct trapframe)); + bcopy(&ucp->uc_mcontext.mc_fs, tf, sizeof(struct trapframe)); + tf->tf_eflags = eflags; tf->tf_vm86_ds = tf->tf_ds; tf->tf_vm86_es = tf->tf_es; tf->tf_vm86_fs = tf->tf_fs; diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c index c69e33958490..560f8a34b775 100644 --- a/sys/pc98/pc98/machdep.c +++ b/sys/pc98/pc98/machdep.c @@ -42,6 +42,7 @@ #include "ether.h" #include "npx.h" #include "opt_atalk.h" +#include "opt_compat.h" #include "opt_cpu.h" #include "opt_ddb.h" #include "opt_inet.h" @@ -921,7 +922,8 @@ sigreturn(p, uap) vm86->vm86_eflags = eflags; /* save VIF, VIP */ eflags = (tf->tf_eflags & ~VM_USERCHANGE) | (eflags & VM_USERCHANGE) | PSL_VM; } - bcopy(&ucp->uc_mcontext.mc_fs, regs, sizeof(struct trapframe)); + bcopy(&ucp->uc_mcontext.mc_fs, tf, sizeof(struct trapframe)); + tf->tf_eflags = eflags; tf->tf_vm86_ds = tf->tf_ds; tf->tf_vm86_es = tf->tf_es; tf->tf_vm86_fs = tf->tf_fs;