Re: [PATCH 12/30] x86, kaiser: map GDT into user page tables

From: Dave Hansen
Date: Tue Nov 21 2017 - 17:12:47 EST


On 11/20/2017 12:22 PM, Thomas Gleixner wrote:
> On Fri, 10 Nov 2017, Dave Hansen wrote:
>> __set_fixmap(get_cpu_gdt_ro_index(cpu), get_cpu_gdt_paddr(cpu), prot);
>> +
>> + /* CPU 0's mapping is done in kaiser_init() */
>> + if (cpu) {
>> + int ret;
>> +
>> + ret = kaiser_add_mapping((unsigned long) get_cpu_gdt_ro(cpu),
>> + PAGE_SIZE, __PAGE_KERNEL_RO);
>> + /*
>> + * We do not have a good way to fail CPU bringup.
>> + * Just WARN about it and hope we boot far enough
>> + * to get a good log out.
>> + */
>
> The GDT fixmap can be set up before the CPU is started. There is no reason
> to do that in cpu_init().

Do you mean the __set_fixmap(), or my call to kaiser_add_mapping()?

Where would you suggest we move it? Here seems kinda nice because it's
right next to where the get_cpu_gdt_ro() mapping is created.