diff options
author | jhb <jhb@FreeBSD.org> | 2005-09-15 17:30:08 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-09-15 17:30:08 +0000 |
commit | d032e7fca37d794f5e169437ead6635ee8f62cf2 (patch) | |
tree | 89fe32f5ac6fc2cdcd3a3a8e25cb53d70eab13e4 /sys/i386/include/pcb_ext.h | |
parent | 64235b259f7e66836a368e5da83478171cc651cc (diff) | |
download | FreeBSD-src-d032e7fca37d794f5e169437ead6635ee8f62cf2.zip FreeBSD-src-d032e7fca37d794f5e169437ead6635ee8f62cf2.tar.gz |
Explicitly switch to the new TSS by updating the current CPU's TSS selector
and reloading it in i386_extend_pcb() rather than trying to force a context
switch to reload the TSS via the TDF_NEEDRESCHED flag. Optimizations to
avoid calling cpu_switch() when the new thread was identical to the old
thread defeated the attempt to force a TSS reload. Explicitly loading the
new TSS is what we really want to do anyway.
PR: i386/84842
Reported by: Alexander Best arundel at h3c dot de
MFC after: 1 week
Reviewed by: bde (mostly)
Diffstat (limited to 'sys/i386/include/pcb_ext.h')
-rw-r--r-- | sys/i386/include/pcb_ext.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/i386/include/pcb_ext.h b/sys/i386/include/pcb_ext.h index cf5a911..81e1bed 100644 --- a/sys/i386/include/pcb_ext.h +++ b/sys/i386/include/pcb_ext.h @@ -44,6 +44,7 @@ struct pcb_ext { }; #ifdef _KERNEL +extern int private_tss; int i386_extend_pcb(struct thread *); |