summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-05-12 10:29:06 +0000
committerkib <kib@FreeBSD.org>2010-05-12 10:29:06 +0000
commit7b04e359b060fb4d6869ca817495df9327ef6090 (patch)
tree154b022694033ec5ba03e8ad9b246113e0dc62fb
parentee02e5dd0ee6cca1f60bddf090ec30d378fd0c01 (diff)
downloadFreeBSD-src-7b04e359b060fb4d6869ca817495df9327ef6090.zip
FreeBSD-src-7b04e359b060fb4d6869ca817495df9327ef6090.tar.gz
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
-rw-r--r--sys/amd64/amd64/trap.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c
index f3dba94..d5ddc59 100644
--- a/sys/amd64/amd64/trap.c
+++ b/sys/amd64/amd64/trap.c
@@ -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) {
OpenPOWER on IntegriCloud