On 16 November 2015 at 19:55, Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote: > On Mon, Nov 16, 2015 at 07:32:32PM +0100, Ard Biesheuvel wrote: >> In order to be able to reuse the core mapping logic of create_mapping >> for mapping the UEFI Runtime Services into a private set of page tables, >> split it off from create_mapping() into a separate function >> __create_mapping which we will wire up in a subsequent patch. > > I'm slightly worried about this. Generally, these functions setup > global mappings. If you're wanting to have a private set of page > tables for UEFI, and those private page tables contain global > mappings which are different from the mappings in the kernel's page > tables, then you need careful break-TLBflush-make handling when > switching from the kernel's page tables to the private UEFI ones, > and vice versa. > > Has this aspect been considered? > Yes. The UEFI mappings are all below 1 GB, and the top kernel end is reused as we do for ordinary userland page tables. The switch to the UEFI page tables performs a full TLB flush. What it does not do is break before make, as far as I can tell, so any pointers regarding how to implement that would be appreciated (this is implemented in 11/12) -- Ard. -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html