i386/84842: i386_set_ioperm(2) timing issue

Bruce Evans bde at FreeBSD.org
Fri Aug 12 22:43:51 GMT 2005


Synopsis: i386_set_ioperm(2) timing issue

State-Changed-From-To: open->analyzed
State-Changed-By: bde
State-Changed-When: Fri Aug 12 22:33:10 GMT 2005
State-Changed-Why: 
The problem seems to be that the TSS is not loaded by the syscall.  The
i/o permissions bitmap is in the TSS and I think think the TSS must be
reloaded for the new bitmap to be seen.  The TSS is reloaded on the next
context switch but doesn't seem to be loaded anywhere else in normal
execution (it is also loaded at boot time and for vm86 BIOS calls and
returns).

Try adding an ltr(gsel_tss) near the end of i386_set_ioperm().

http://www.freebsd.org/cgi/query-pr.cgi?pr=84842


More information about the freebsd-i386 mailing list