diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2017-09-28 08:38:24 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2017-09-28 08:38:24 +0000 |
commit | d3c968bf844340d6f8c7171650e28364ac2ef20a (patch) | |
tree | b2a623f87eb18639d5904f78574df45f8b14554a /sys/i386/i386/db_trace.c | |
parent | 352035746fc8eb7617067aa41837f4cbef16a2a3 (diff) | |
download | src-d3c968bf844340d6f8c7171650e28364ac2ef20a.tar.gz src-d3c968bf844340d6f8c7171650e28364ac2ef20a.zip |
Revert r323722. A better fix will be committed shortly, as well as
some still useful bits of the reverted revision.
The problem with the committed fix is that there are still issues with
returning from NMI, when NMI interrupted kernel in a moment where the
kernel segments selectors were still not loaded into registers. If
this happens, the NMI return would loose the userspace selectors
because r323722 does not reload segment registers on return to kernel
mode.
Fixing the problem is complicated. Since an alternative approach to
handle the original bug exists, it makes sence to stop adding more
complexity.
Discussed with: bde
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=324078
Diffstat (limited to 'sys/i386/i386/db_trace.c')
-rw-r--r-- | sys/i386/i386/db_trace.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/i386/i386/db_trace.c b/sys/i386/i386/db_trace.c index ce0a7c94682b..b4f52d6ec3c6 100644 --- a/sys/i386/i386/db_trace.c +++ b/sys/i386/i386/db_trace.c @@ -326,7 +326,8 @@ db_nextframe(struct i386_frame **fp, db_addr_t *ip, struct thread *td) else if (strncmp(name, "Xatpic_intr", 11) == 0 || strncmp(name, "Xapic_isr", 9) == 0) frame_type = INTERRUPT; - else if (strcmp(name, "Xint0x80_syscall") == 0) + else if (strcmp(name, "Xlcall_syscall") == 0 || + strcmp(name, "Xint0x80_syscall") == 0) frame_type = SYSCALL; else if (strcmp(name, "dblfault_handler") == 0) frame_type = DOUBLE_FAULT; |