Module Name: src
Committed By: maxv
Date: Sun Sep 17 09:41:35 UTC 2017
Modified Files:
src/sys/arch/amd64/amd64: netbsd32_machdep.c trap.c
src/sys/arch/amd64/include: cpu.h segments.h
src/sys/arch/i386/i386: compat_13_machdep.c compat_16_machdep.c
db_interface.c machdep.c process_machdep.c trap.c
src/sys/arch/i386/include: cpu.h segments.h
src/sys/arch/x86/x86: fpu.c kgdb_machdep.c
src/sys/compat/freebsd: freebsd_machdep.c
src/sys/compat/linux/arch/i386: linux_machdep.c
Log Message:
Remove the second argument from USERMODE and KERNELMODE, it is unused
now that we don't have vm86 anymore.
To generate a diff of this commit:
cvs rdiff -u -r1.108 -r1.109 src/sys/arch/amd64/amd64/netbsd32_machdep.c
cvs rdiff -u -r1.100 -r1.101 src/sys/arch/amd64/amd64/trap.c
cvs rdiff -u -r1.60 -r1.61 src/sys/arch/amd64/include/cpu.h
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/amd64/include/segments.h
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/i386/i386/compat_13_machdep.c
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/i386/i386/compat_16_machdep.c
cvs rdiff -u -r1.75 -r1.76 src/sys/arch/i386/i386/db_interface.c
cvs rdiff -u -r1.793 -r1.794 src/sys/arch/i386/i386/machdep.c
cvs rdiff -u -r1.90 -r1.91 src/sys/arch/i386/i386/process_machdep.c
cvs rdiff -u -r1.290 -r1.291 src/sys/arch/i386/i386/trap.c
cvs rdiff -u -r1.178 -r1.179 src/sys/arch/i386/include/cpu.h
cvs rdiff -u -r1.61 -r1.62 src/sys/arch/i386/include/segments.h
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/x86/x86/fpu.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x86/x86/kgdb_machdep.c
cvs rdiff -u -r1.3 -r1.4 src/sys/compat/freebsd/freebsd_machdep.c
cvs rdiff -u -r1.164 -r1.165 src/sys/compat/linux/arch/i386/linux_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/amd64/netbsd32_machdep.c
diff -u src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.108 src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.109
--- src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.108 Thu Aug 31 15:41:14 2017
+++ src/sys/arch/amd64/amd64/netbsd32_machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_machdep.c,v 1.108 2017/08/31 15:41:14 maxv Exp $ */
+/* $NetBSD: netbsd32_machdep.c,v 1.109 2017/09/17 09:41:35 maxv Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.108 2017/08/31 15:41:14 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.109 2017/09/17 09:41:35 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -1061,7 +1061,7 @@ check_sigcontext32(struct lwp *l, const
if (__predict_false(pmap->pm_ldt != NULL)) {
/* Only when the LDT is user-set (with USER_LDT) */
- if (!USERMODE(scp->sc_cs, scp->sc_eflags))
+ if (!USERMODE(scp->sc_cs))
return EINVAL;
} else {
if (!VALID_USER_CSEL32(scp->sc_cs))
@@ -1098,7 +1098,7 @@ cpu_mcontext32_validate(struct lwp *l, c
#ifdef USER_LDT
/* Userland is allowed to have unfamiliar segment register values */
- if (!USERMODE(gr[_REG32_CS], gr[_REG32_EFL]))
+ if (!USERMODE(gr[_REG32_CS]))
return EINVAL;
#else
struct pcb *pcb = lwp_getpcb(l);
Index: src/sys/arch/amd64/amd64/trap.c
diff -u src/sys/arch/amd64/amd64/trap.c:1.100 src/sys/arch/amd64/amd64/trap.c:1.101
--- src/sys/arch/amd64/amd64/trap.c:1.100 Fri Sep 15 17:22:09 2017
+++ src/sys/arch/amd64/amd64/trap.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: trap.c,v 1.100 2017/09/15 17:22:09 maxv Exp $ */
+/* $NetBSD: trap.c,v 1.101 2017/09/17 09:41:35 maxv Exp $ */
/*
* Copyright (c) 1998, 2000, 2017 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.100 2017/09/15 17:22:09 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.101 2017/09/17 09:41:35 maxv Exp $");
#include "opt_ddb.h"
#include "opt_kgdb.h"
@@ -290,7 +290,7 @@ trap_user_kernelmode(struct trapframe *f
* The stack frame containing the user registers is
* still valid and pointed to by tf_rsp.
*/
- if (KERNELMODE(vframe->tf_cs, vframe->tf_eflags))
+ if (KERNELMODE(vframe->tf_cs))
return;
/* There is no valid address for the fault */
break;
@@ -354,7 +354,7 @@ trap(struct trapframe *frame)
}
type = frame->tf_trapno;
- if (!KERNELMODE(frame->tf_cs, frame->tf_rflags)) {
+ if (!KERNELMODE(frame->tf_cs)) {
type |= T_USER;
l->l_md.md_regs = frame;
LWP_CACHE_CREDS(l, p);
Index: src/sys/arch/amd64/include/cpu.h
diff -u src/sys/arch/amd64/include/cpu.h:1.60 src/sys/arch/amd64/include/cpu.h:1.61
--- src/sys/arch/amd64/include/cpu.h:1.60 Sat Jan 21 16:48:56 2012
+++ src/sys/arch/amd64/include/cpu.h Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.60 2012/01/21 16:48:56 chs Exp $ */
+/* $NetBSD: cpu.h,v 1.61 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@@ -83,8 +83,7 @@ cpu_set_curpri(int pri)
}
#endif /* __GNUC__ && !_MODULE */
-#define CLKF_USERMODE(frame) USERMODE((frame)->cf_if.if_tf.tf_cs, \
- (frame)->cf_if.if_tf.tf_rflags)
+#define CLKF_USERMODE(frame) USERMODE((frame)->cf_if.if_tf.tf_cs)
#define CLKF_PC(frame) ((frame)->cf_if.if_tf.tf_rip)
#define CLKF_INTR(frame) (curcpu()->ci_idepth > 0)
#define LWP_PC(l) ((l)->l_md.md_regs->tf_rip)
Index: src/sys/arch/amd64/include/segments.h
diff -u src/sys/arch/amd64/include/segments.h:1.29 src/sys/arch/amd64/include/segments.h:1.30
--- src/sys/arch/amd64/include/segments.h:1.29 Sun Feb 5 08:58:39 2017
+++ src/sys/arch/amd64/include/segments.h Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: segments.h,v 1.29 2017/02/05 08:58:39 maxv Exp $ */
+/* $NetBSD: segments.h,v 1.30 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@@ -129,15 +129,15 @@
#define LSEL(s,r) ((s) | r | SEL_LDT)
-#define USERMODE(c, f) (ISPL(c) == SEL_UPL)
+#define USERMODE(c) (ISPL(c) == SEL_UPL)
#ifdef XEN
/*
* As KPL == UPL, Xen emulate interrupt in kernel context by pushing
* a fake CS with XPL privilege
*/
-#define KERNELMODE(c, f) (ISPL(c) == SEL_XPL)
+#define KERNELMODE(c) (ISPL(c) == SEL_XPL)
#else
-#define KERNELMODE(c, f) (ISPL(c) == SEL_KPL)
+#define KERNELMODE(c) (ISPL(c) == SEL_KPL)
#endif
#ifndef _LOCORE
Index: src/sys/arch/i386/i386/compat_13_machdep.c
diff -u src/sys/arch/i386/i386/compat_13_machdep.c:1.26 src/sys/arch/i386/i386/compat_13_machdep.c:1.27
--- src/sys/arch/i386/i386/compat_13_machdep.c:1.26 Sat Aug 12 07:07:53 2017
+++ src/sys/arch/i386/i386/compat_13_machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_13_machdep.c,v 1.26 2017/08/12 07:07:53 maxv Exp $ */
+/* $NetBSD: compat_13_machdep.c,v 1.27 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: compat_13_machdep.c,v 1.26 2017/08/12 07:07:53 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_13_machdep.c,v 1.27 2017/09/17 09:41:35 maxv Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -73,7 +73,7 @@ compat_13_sys_sigreturn(struct lwp *l, c
* the trap, rather than doing all of the checking here.
*/
if (((context.sc_eflags ^ tf->tf_eflags) & PSL_USERSTATIC) != 0 ||
- !USERMODE(context.sc_cs, context.sc_eflags))
+ !USERMODE(context.sc_cs))
return (EINVAL);
tf->tf_gs = context.sc_gs;
Index: src/sys/arch/i386/i386/compat_16_machdep.c
diff -u src/sys/arch/i386/i386/compat_16_machdep.c:1.29 src/sys/arch/i386/i386/compat_16_machdep.c:1.30
--- src/sys/arch/i386/i386/compat_16_machdep.c:1.29 Sat Aug 12 07:07:53 2017
+++ src/sys/arch/i386/i386/compat_16_machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_16_machdep.c,v 1.29 2017/08/12 07:07:53 maxv Exp $ */
+/* $NetBSD: compat_16_machdep.c,v 1.30 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: compat_16_machdep.c,v 1.29 2017/08/12 07:07:53 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_16_machdep.c,v 1.30 2017/09/17 09:41:35 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -96,7 +96,7 @@ compat_16_sys___sigreturn14(struct lwp *
* the trap, rather than doing all of the checking here.
*/
if (((context.sc_eflags ^ tf->tf_eflags) & PSL_USERSTATIC) != 0 ||
- !USERMODE(context.sc_cs, context.sc_eflags))
+ !USERMODE(context.sc_cs))
return (EINVAL);
tf->tf_gs = context.sc_gs;
Index: src/sys/arch/i386/i386/db_interface.c
diff -u src/sys/arch/i386/i386/db_interface.c:1.75 src/sys/arch/i386/i386/db_interface.c:1.76
--- src/sys/arch/i386/i386/db_interface.c:1.75 Sun Sep 17 09:04:51 2017
+++ src/sys/arch/i386/i386/db_interface.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: db_interface.c,v 1.75 2017/09/17 09:04:51 maxv Exp $ */
+/* $NetBSD: db_interface.c,v 1.76 2017/09/17 09:41:35 maxv Exp $ */
/*
* Mach Operating System
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.75 2017/09/17 09:04:51 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.76 2017/09/17 09:41:35 maxv Exp $");
#include "opt_ddb.h"
#include "opt_multiprocessor.h"
@@ -228,7 +228,7 @@ kdb_trap(int type, int code, db_regs_t *
#endif
/* XXX Should switch to kdb's own stack here. */
ddb_regs = *regs;
- if (!(flags & TC_TSS) && KERNELMODE(regs->tf_cs, regs->tf_eflags)) {
+ if (!(flags & TC_TSS) && KERNELMODE(regs->tf_cs)) {
/*
* Kernel mode - esp and ss not saved
*/
@@ -270,7 +270,7 @@ kdb_trap(int type, int code, db_regs_t *
regs->tf_eip = ddb_regs.tf_eip;
regs->tf_cs = ddb_regs.tf_cs;
regs->tf_eflags = ddb_regs.tf_eflags;
- if (!(flags & TC_TSS) && !KERNELMODE(regs->tf_cs, regs->tf_eflags)) {
+ if (!(flags & TC_TSS) && !KERNELMODE(regs->tf_cs)) {
/* ring transit - saved esp and ss valid */
regs->tf_esp = ddb_regs.tf_esp;
regs->tf_ss = ddb_regs.tf_ss;
@@ -338,7 +338,7 @@ ddb_suspend(struct trapframe *frame)
regs = *frame;
flags = regs.tf_err & TC_FLAGMASK;
regs.tf_err &= ~TC_FLAGMASK;
- if (!(flags & TC_TSS) && KERNELMODE(regs.tf_cs, regs.tf_eflags)) {
+ if (!(flags & TC_TSS) && KERNELMODE(regs.tf_cs)) {
/*
* Kernel mode - esp and ss not saved
*/
Index: src/sys/arch/i386/i386/machdep.c
diff -u src/sys/arch/i386/i386/machdep.c:1.793 src/sys/arch/i386/i386/machdep.c:1.794
--- src/sys/arch/i386/i386/machdep.c:1.793 Sun Sep 17 09:04:51 2017
+++ src/sys/arch/i386/i386/machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.793 2017/09/17 09:04:51 maxv Exp $ */
+/* $NetBSD: machdep.c,v 1.794 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.793 2017/09/17 09:04:51 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.794 2017/09/17 09:41:35 maxv Exp $");
#include "opt_beep.h"
#include "opt_compat_freebsd.h"
@@ -1571,7 +1571,7 @@ cpu_mcontext_validate(struct lwp *l, con
* all of the checking here.
*/
if (((gr[_REG_EFL] ^ tf->tf_eflags) & PSL_USERSTATIC) ||
- !USERMODE(gr[_REG_CS], gr[_REG_EFL]))
+ !USERMODE(gr[_REG_CS]))
return EINVAL;
return 0;
Index: src/sys/arch/i386/i386/process_machdep.c
diff -u src/sys/arch/i386/i386/process_machdep.c:1.90 src/sys/arch/i386/i386/process_machdep.c:1.91
--- src/sys/arch/i386/i386/process_machdep.c:1.90 Sat Aug 12 07:07:53 2017
+++ src/sys/arch/i386/i386/process_machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: process_machdep.c,v 1.90 2017/08/12 07:07:53 maxv Exp $ */
+/* $NetBSD: process_machdep.c,v 1.91 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1998, 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -75,7 +75,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.90 2017/08/12 07:07:53 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.91 2017/09/17 09:41:35 maxv Exp $");
#include "opt_ptrace.h"
@@ -157,7 +157,7 @@ process_write_regs(struct lwp *l, const
* Check for security violations.
*/
if (((regs->r_eflags ^ tf->tf_eflags) & PSL_USERSTATIC) != 0 ||
- !USERMODE(regs->r_cs, regs->r_eflags))
+ !USERMODE(regs->r_cs))
return (EINVAL);
tf->tf_gs = regs->r_gs;
Index: src/sys/arch/i386/i386/trap.c
diff -u src/sys/arch/i386/i386/trap.c:1.290 src/sys/arch/i386/i386/trap.c:1.291
--- src/sys/arch/i386/i386/trap.c:1.290 Tue Sep 12 14:10:49 2017
+++ src/sys/arch/i386/i386/trap.c Sun Sep 17 09:41:35 2017
@@ -1,5 +1,5 @@
-/* $NetBSD: trap.c,v 1.290 2017/09/12 14:10:49 gson Exp $ */
+/* $NetBSD: trap.c,v 1.291 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1998, 2000, 2005, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -69,7 +69,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.290 2017/09/12 14:10:49 gson Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.291 2017/09/17 09:41:35 maxv Exp $");
#include "opt_ddb.h"
#include "opt_kgdb.h"
@@ -275,7 +275,7 @@ trap(struct trapframe *frame)
trap_print(frame, l);
}
#endif
- if (type != T_NMI && !KERNELMODE(frame->tf_cs, frame->tf_eflags)) {
+ if (type != T_NMI && !KERNELMODE(frame->tf_cs)) {
type |= T_USER;
l->l_md.md_regs = frame;
pcb->pcb_cr2 = 0;
@@ -370,7 +370,7 @@ kernelfault:
* (eg for sending a SIGSEGV).
*/
vframe = (void *)((int *)frame + 3);
- if (KERNELMODE(vframe->tf_cs, vframe->tf_eflags))
+ if (KERNELMODE(vframe->tf_cs))
goto we_re_toast;
memmove(vframe, frame,
offsetof(struct trapframe, tf_eip));
@@ -394,7 +394,7 @@ kernelfault:
* the kernel fault frame.
*/
vframe = (void *)(&frame->tf_eflags + 1);
- if (KERNELMODE(vframe->tf_cs, vframe->tf_eflags))
+ if (KERNELMODE(vframe->tf_cs))
goto we_re_toast;
/* There is no valid address for the fault */
break;
Index: src/sys/arch/i386/include/cpu.h
diff -u src/sys/arch/i386/include/cpu.h:1.178 src/sys/arch/i386/include/cpu.h:1.179
--- src/sys/arch/i386/include/cpu.h:1.178 Fri Dec 30 17:57:49 2011
+++ src/sys/arch/i386/include/cpu.h Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.178 2011/12/30 17:57:49 cherry Exp $ */
+/* $NetBSD: cpu.h,v 1.179 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@@ -81,7 +81,7 @@ cpu_set_curpri(int pri)
}
#endif
-#define CLKF_USERMODE(frame) USERMODE((frame)->cf_if.if_cs, (frame)->cf_if.if_eflags)
+#define CLKF_USERMODE(frame) USERMODE((frame)->cf_if.if_cs)
#define CLKF_PC(frame) ((frame)->cf_if.if_eip)
#define CLKF_INTR(frame) (curcpu()->ci_idepth > 0)
#define LWP_PC(l) ((l)->l_md.md_regs->tf_eip)
Index: src/sys/arch/i386/include/segments.h
diff -u src/sys/arch/i386/include/segments.h:1.61 src/sys/arch/i386/include/segments.h:1.62
--- src/sys/arch/i386/include/segments.h:1.61 Sat Aug 12 07:35:08 2017
+++ src/sys/arch/i386/include/segments.h Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: segments.h,v 1.61 2017/08/12 07:35:08 maxv Exp $ */
+/* $NetBSD: segments.h,v 1.62 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@@ -118,8 +118,8 @@
#define LSEL(s,r) (((s) << 3) | r | SEL_LDT) /* a local selector */
-#define USERMODE(c, f) (ISPL(c) == SEL_UPL)
-#define KERNELMODE(c, f) (ISPL(c) == SEL_KPL)
+#define USERMODE(c) (ISPL(c) == SEL_UPL)
+#define KERNELMODE(c) (ISPL(c) == SEL_KPL)
#ifndef _LOCORE
Index: src/sys/arch/x86/x86/fpu.c
diff -u src/sys/arch/x86/x86/fpu.c:1.12 src/sys/arch/x86/x86/fpu.c:1.13
--- src/sys/arch/x86/x86/fpu.c:1.12 Thu Sep 29 17:01:43 2016
+++ src/sys/arch/x86/x86/fpu.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: fpu.c,v 1.12 2016/09/29 17:01:43 maxv Exp $ */
+/* $NetBSD: fpu.c,v 1.13 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc. All
@@ -96,7 +96,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.12 2016/09/29 17:01:43 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.13 2017/09/17 09:41:35 maxv Exp $");
#include "opt_multiprocessor.h"
@@ -273,7 +273,7 @@ fputrap(struct trapframe *frame)
uint32_t statbits;
ksiginfo_t ksi;
- if (!USERMODE(frame->tf_cs, frame->tf_eflags))
+ if (!USERMODE(frame->tf_cs))
panic("fpu trap from kernel, trapframe %p\n", frame);
if (i386_fpu_present == 0) {
@@ -339,7 +339,7 @@ fpudna(struct trapframe *frame)
struct pcb *pcb;
int s;
- if (!USERMODE(frame->tf_cs, frame->tf_eflags))
+ if (!USERMODE(frame->tf_cs))
panic("fpudna from kernel, ip %p, trapframe %p\n",
(void *)X86_TF_RIP(frame), frame);
Index: src/sys/arch/x86/x86/kgdb_machdep.c
diff -u src/sys/arch/x86/x86/kgdb_machdep.c:1.2 src/sys/arch/x86/x86/kgdb_machdep.c:1.3
--- src/sys/arch/x86/x86/kgdb_machdep.c:1.2 Tue Aug 15 08:57:19 2017
+++ src/sys/arch/x86/x86/kgdb_machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: kgdb_machdep.c,v 1.2 2017/08/15 08:57:19 maxv Exp $ */
+/* $NetBSD: kgdb_machdep.c,v 1.3 2017/09/17 09:41:35 maxv Exp $ */
/*
* Copyright (c) 1997, 2017 The NetBSD Foundation, Inc.
@@ -56,7 +56,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kgdb_machdep.c,v 1.2 2017/08/15 08:57:19 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kgdb_machdep.c,v 1.3 2017/09/17 09:41:35 maxv Exp $");
#include "opt_ddb.h"
@@ -198,7 +198,7 @@ kgdb_getregs(db_regs_t *regs, kgdb_reg_t
gdb_regs[14] = regs->tf_fs;
gdb_regs[15] = regs->tf_gs;
- if (KERNELMODE(regs->tf_cs, regs->tf_eflags)) {
+ if (KERNELMODE(regs->tf_cs)) {
/*
* Kernel mode - esp and ss not saved.
*/
@@ -250,7 +250,7 @@ kgdb_setregs(db_regs_t *regs, kgdb_reg_t
regs->tf_ds = gdb_regs[12];
regs->tf_es = gdb_regs[13];
- if (KERNELMODE(regs->tf_cs, regs->tf_eflags) == 0) {
+ if (KERNELMODE(regs->tf_cs) == 0) {
/*
* Trapped in user mode - restore esp and ss.
*/
Index: src/sys/compat/freebsd/freebsd_machdep.c
diff -u src/sys/compat/freebsd/freebsd_machdep.c:1.3 src/sys/compat/freebsd/freebsd_machdep.c:1.4
--- src/sys/compat/freebsd/freebsd_machdep.c:1.3 Sat Aug 12 07:07:53 2017
+++ src/sys/compat/freebsd/freebsd_machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: freebsd_machdep.c,v 1.3 2017/08/12 07:07:53 maxv Exp $ */
+/* $NetBSD: freebsd_machdep.c,v 1.4 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_machdep.c,v 1.3 2017/08/12 07:07:53 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: freebsd_machdep.c,v 1.4 2017/09/17 09:41:35 maxv Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -184,7 +184,7 @@ freebsd_sys_sigreturn(struct lwp *l, con
* the trap, rather than doing all of the checking here.
*/
if (((context.sc_efl ^ tf->tf_eflags) & PSL_USERSTATIC) != 0 ||
- !USERMODE(context.sc_cs, context.sc_efl))
+ !USERMODE(context.sc_cs))
return (EINVAL);
tf->tf_gs = context.sc_gs;
Index: src/sys/compat/linux/arch/i386/linux_machdep.c
diff -u src/sys/compat/linux/arch/i386/linux_machdep.c:1.164 src/sys/compat/linux/arch/i386/linux_machdep.c:1.165
--- src/sys/compat/linux/arch/i386/linux_machdep.c:1.164 Sat Aug 12 07:07:53 2017
+++ src/sys/compat/linux/arch/i386/linux_machdep.c Sun Sep 17 09:41:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_machdep.c,v 1.164 2017/08/12 07:07:53 maxv Exp $ */
+/* $NetBSD: linux_machdep.c,v 1.165 2017/09/17 09:41:35 maxv Exp $ */
/*-
* Copyright (c) 1995, 2000, 2008, 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.164 2017/08/12 07:07:53 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.165 2017/09/17 09:41:35 maxv Exp $");
#if defined(_KERNEL_OPT)
#include "opt_user_ldt.h"
@@ -437,7 +437,7 @@ linux_restore_sigcontext(struct lwp *l,
* the trap, rather than doing all of the checking here.
*/
if (((scp->sc_eflags ^ tf->tf_eflags) & PSL_USERSTATIC) != 0 ||
- !USERMODE(scp->sc_cs, scp->sc_eflags))
+ !USERMODE(scp->sc_cs))
return EINVAL;
tf->tf_gs = scp->sc_gs;