Author: kib Date: Sat May 12 10:48:53 2018 New Revision: 333522 URL: https://svnweb.freebsd.org/changeset/base/333522
Log: Fix use of the custom TSS on i386 after the 4/4 split. Record common_tssd, the descriptor to be written in GDT to point to the common TSS, before LTR is executed. The LTR instruction sets the loaded descriptor type to 386 TSS busy, which traps on reloads. Sponsored by: The FreeBSD Foundation Modified: head/sys/i386/i386/machdep.c Modified: head/sys/i386/i386/machdep.c ============================================================================== --- head/sys/i386/i386/machdep.c Sat May 12 10:11:33 2018 (r333521) +++ head/sys/i386/i386/machdep.c Sat May 12 10:48:53 2018 (r333522) @@ -2532,12 +2532,12 @@ machdep_init_trampoline(void) gdt[GPROC0_SEL].sd.sd_lobase = (int)tss; gdt[GPROC0_SEL].sd.sd_hibase = (u_int)tss >> 24; gdt[GPROC0_SEL].sd.sd_type = SDT_SYS386TSS; - ltr(GSEL(GPROC0_SEL, SEL_KPL)); PCPU_SET(fsgs_gdt, &gdt[GUFS_SEL].sd); PCPU_SET(tss_gdt, &gdt[GPROC0_SEL].sd); PCPU_SET(common_tssd, *PCPU_GET(tss_gdt)); PCPU_SET(common_tssp, tss); + ltr(GSEL(GPROC0_SEL, SEL_KPL)); trampoline = pmap_trm_alloc(end_exceptions - start_exceptions, M_NOWAIT); _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"