diff options
author | msmith <msmith@FreeBSD.org> | 1998-08-18 07:47:12 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 1998-08-18 07:47:12 +0000 |
commit | 95c3baa7ee4b5dd88be242a814c7fbe0c238c5e1 (patch) | |
tree | fe45982843022a23d3080db53e654e3e1426b6a7 /sys/i386/include/globaldata.h | |
parent | 5bb2852b1133eb81dde95b08b0e5bc7272f7b62f (diff) | |
download | FreeBSD-src-95c3baa7ee4b5dd88be242a814c7fbe0c238c5e1.zip FreeBSD-src-95c3baa7ee4b5dd88be242a814c7fbe0c238c5e1.tar.gz |
Presently there is only one `currentldt' variable for all cpus
in a SMP system. Unexpected things could happen if each cpu
has a different ldt setting and one cpu tries to use value
of currentldt set by another cpu.
The fix is to move currentldt to the per-cpu area. It includes
patches I filed in PR i386/6219 which are also user ldt related.
PR: i386/7591, i386/6219
Submitted by: Luoqi Chen <luoqi@watermarkgroup.com>
Diffstat (limited to 'sys/i386/include/globaldata.h')
-rw-r--r-- | sys/i386/include/globaldata.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/i386/include/globaldata.h b/sys/i386/include/globaldata.h index c6c5a17..e182d0a 100644 --- a/sys/i386/include/globaldata.h +++ b/sys/i386/include/globaldata.h @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: globaldata.h,v 1.4 1998/05/17 23:08:02 tegge Exp $ + * $Id: globaldata.h,v 1.5 1998/05/28 09:30:02 phk Exp $ */ /* @@ -49,6 +49,9 @@ struct globaldata { u_int private_tss; u_int my_tr; #endif +#ifdef USER_LDT + int currentldt; +#endif #ifdef SMP u_int cpuid; u_int cpu_lockid; |