Why are %fs and %gs set back to default (_udata_sel) when posting
signals?
I am planning on using %fs for TSD/KSD and want it to be valid
in signal handlers.
A test program is at:
http://people.freebsd.org/~deischen/test_tsd.c
Compile it with -DDEBUG on an unpatched kernel to show more
details.
This following seems to fix it. Any reason it would cause
problems?
Index: machdep.c
===================================================================
RCS file: /opt/FreeBSD/cvs/src/sys/i386/i386/machdep.c,v
retrieving revision 1.447
diff -u -r1.447 machdep.c
--- machdep.c 2001/04/27 19:28:19 1.447
+++ machdep.c 2001/05/01 22:20:52
@@ -745,8 +745,6 @@
regs->tf_cs = _ucodesel;
regs->tf_ds = _udatasel;
regs->tf_es = _udatasel;
- regs->tf_fs = _udatasel;
- load_gs(_udatasel);
regs->tf_ss = _udatasel;
}
--
Dan Eischen
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message