amd64: properly set the start of the io permission bitmap for BSP

... after the initial common TSS is copied into its final location
during PCPU reallocation.

Reported by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
kib 2019-12-07 00:23:19 +00:00
parent dfa2e15cbe
commit a51c00ce20

View File

@ -1771,6 +1771,8 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
pcpu_init(&__pcpu[0], 0, sizeof(struct pcpu)); pcpu_init(&__pcpu[0], 0, sizeof(struct pcpu));
amd64_bsp_pcpu_init1(&__pcpu[0]); amd64_bsp_pcpu_init1(&__pcpu[0]);
amd64_bsp_ist_init(&__pcpu[0]); amd64_bsp_ist_init(&__pcpu[0]);
__pcpu[0].pc_common_tss.tss_iobase = sizeof(struct amd64tss) +
IOPERM_BITMAP_SIZE;
memcpy(__pcpu[0].pc_gdt, temp_bsp_pcpu.pc_gdt, NGDT * memcpy(__pcpu[0].pc_gdt, temp_bsp_pcpu.pc_gdt, NGDT *
sizeof(struct user_segment_descriptor)); sizeof(struct user_segment_descriptor));
gdt_segs[GPROC0_SEL].ssd_base = (uintptr_t)&__pcpu[0].pc_common_tss; gdt_segs[GPROC0_SEL].ssd_base = (uintptr_t)&__pcpu[0].pc_common_tss;