aboutsummaryrefslogtreecommitdiff
path: root/sys/i386/i386/db_trace.c
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2017-09-28 08:38:24 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2017-09-28 08:38:24 +0000
commitd3c968bf844340d6f8c7171650e28364ac2ef20a (patch)
treeb2a623f87eb18639d5904f78574df45f8b14554a /sys/i386/i386/db_trace.c
parent352035746fc8eb7617067aa41837f4cbef16a2a3 (diff)
downloadsrc-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.c3
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;