svn commit: r207957 - head/sys/amd64/amd64
Konstantin Belousov
kib at FreeBSD.org
Wed May 12 10:29:07 UTC 2010
Author: kib
Date: Wed May 12 10:29:06 2010
New Revision: 207957
URL: http://svn.freebsd.org/changeset/base/207957
Log:
Remove unneeded overrides of the segment registers in the inner trap
frame upon segment register load fault. The doreti procedure does not
load segment registers when returning to the kernel frame, and current
values in the segment descriptor cache already allow the kernel mode
to run, not modified by faulted loaded.
Suggested by: bde
Tested by: pho
MFC after: 1 week
Modified:
head/sys/amd64/amd64/trap.c
Modified: head/sys/amd64/amd64/trap.c
==============================================================================
--- head/sys/amd64/amd64/trap.c Wed May 12 09:51:57 2010 (r207956)
+++ head/sys/amd64/amd64/trap.c Wed May 12 10:29:06 2010 (r207957)
@@ -488,22 +488,18 @@ trap(struct trapframe *frame)
}
if (frame->tf_rip == (long)ld_ds) {
frame->tf_rip = (long)ds_load_fault;
- frame->tf_ds = _udatasel;
goto out;
}
if (frame->tf_rip == (long)ld_es) {
frame->tf_rip = (long)es_load_fault;
- frame->tf_es = _udatasel;
goto out;
}
if (frame->tf_rip == (long)ld_fs) {
frame->tf_rip = (long)fs_load_fault;
- frame->tf_fs = _ufssel;
goto out;
}
if (frame->tf_rip == (long)ld_gs) {
frame->tf_rip = (long)gs_load_fault;
- frame->tf_gs = _ugssel;
goto out;
}
if (frame->tf_rip == (long)ld_gsbase) {
More information about the svn-src-all
mailing list