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:
parent
dfa2e15cbe
commit
a51c00ce20
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user