[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f71ce70f-ea43-d22f-1a2a-fdf4e9dab6af@linux.intel.com>
Date: Tue, 21 Nov 2017 13:19:57 -0800
From: Dave Hansen <dave.hansen@...ux.intel.com>
To: Andy Lutomirski <luto@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
moritz.lipp@...k.tugraz.at,
Daniel Gruss <daniel.gruss@...k.tugraz.at>,
michael.schwarz@...k.tugraz.at, richard.fellner@...dent.tugraz.at,
Linus Torvalds <torvalds@...ux-foundation.org>,
Kees Cook <keescook@...gle.com>,
Hugh Dickins <hughd@...gle.com>, X86 ML <x86@...nel.org>
Subject: Re: [PATCH 12/30] x86, kaiser: map GDT into user page tables
On 11/20/2017 12:46 PM, Andy Lutomirski wrote:
>>> + /*
>>> + * We could theoretically do this in setup_fixmap_gdt().
>>> + * But, we would need to rewrite the above page table
>>> + * allocation code to use the bootmem allocator. The
>>> + * buddy allocator is not available at the time that we
>>> + * call setup_fixmap_gdt() for CPU 0.
>>> + */
>>> + kaiser_add_user_map_early(get_cpu_gdt_ro(0), PAGE_SIZE,
>>> + __PAGE_KERNEL_RO | _PAGE_GLOBAL);
>> This one is needs to stay.
> When you rebase on to my latest version, this should change to mapping
> the entire cpu_entry_area.
I did this, but unfortunately it ends up having to individually map all
four pieces of cpu_entry_area. They all need different permissions and
while theoretically we could do TSS+exception-stacks in the same call,
they're not next to each other:
GDT: R/O
TSS: R/W at least because of trampoline stack
entry code: EXEC+R/O
exception stacks: R/W
Powered by blists - more mailing lists