summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2001-05-06 02:13:12 +0000
committerdeischen <deischen@FreeBSD.org>2001-05-06 02:13:12 +0000
commit8b92d38aa9c8a05a99eba0fc1fb2f875d0e877cd (patch)
tree727cd0fa2215710c54225cfc7b560db3e688bbc5 /sys/amd64
parent66a962ce675f3386156405c78fe7d7a1e6a852bb (diff)
downloadFreeBSD-src-8b92d38aa9c8a05a99eba0fc1fb2f875d0e877cd.zip
FreeBSD-src-8b92d38aa9c8a05a99eba0fc1fb2f875d0e877cd.tar.gz
When setting up the frame to invoke a signal handler, preserve the
%fs and %gs registers instead of setting them to known sane values. %fs is going to be used for thread/KSE specific data by the new threads library; we'll want it to be valid inside of signal handlers. According to bde, Linux preserves the state of %fs and %gs when setting up signal handlers, so there is precedent for doing this. The same changes should be made in the Linux emulator, but when made, they seem to break (at least one version of) the IBM JDK for Linux (reported by drew). Approved by: bde
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/machdep.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index c89852a..8d77658 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -745,8 +745,6 @@ sendsig(catcher, sig, mask, code)
regs->tf_cs = _ucodesel;
regs->tf_ds = _udatasel;
regs->tf_es = _udatasel;
- regs->tf_fs = _udatasel;
- load_gs(_udatasel);
regs->tf_ss = _udatasel;
}
OpenPOWER on IntegriCloud