Re: [PATCH v3 31/75] x86/head/64: Install boot GDT
From: Joerg Roedel
Date: Thu Jun 04 2020 - 07:48:28 EST
On Mon, May 18, 2020 at 10:23:13AM +0200, Borislav Petkov wrote:
> On Tue, Apr 28, 2020 at 05:16:41PM +0200, Joerg Roedel wrote:
> > @@ -480,6 +500,22 @@ SYM_DATA_LOCAL(early_gdt_descr_base, .quad INIT_PER_CPU_VAR(gdt_page))
> > SYM_DATA(phys_base, .quad 0x0)
> > EXPORT_SYMBOL(phys_base)
> >
> > +/* Boot GDT used when kernel addresses are not mapped yet */
> > +SYM_DATA_LOCAL(boot_gdt_descr, .word boot_gdt_end - boot_gdt)
> > +SYM_DATA_LOCAL(boot_gdt_base, .quad 0)
> > +SYM_DATA_START(boot_gdt)
> > + .quad 0
> > + .quad 0x00cf9a000000ffff /* __KERNEL32_CS */
> > + .quad 0x00af9a000000ffff /* __KERNEL_CS */
> > + .quad 0x00cf92000000ffff /* __KERNEL_DS */
> > + .quad 0 /* __USER32_CS - unused */
> > + .quad 0 /* __USER_DS - unused */
> > + .quad 0 /* __USER_CS - unused */
> > + .quad 0 /* unused */
> > + .quad 0x0080890000000000 /* TSS descriptor */
> > + .quad 0x0000000000000000 /* TSS continued */
>
> Any chance you could use macros ala GDT_ENTRY_INIT() for those instead
> of the naked values?
Yeah, seems to work. Updated patch attached.