On Fri, 2012-09-07 at 08:43 +0100, Jan Beulich wrote: > >>> On 06.09.12 at 17:47, Matt Fleming <matt.fleming@xxxxxxxxx> wrote: > > On Thu, 2012-09-06 at 15:34 +0100, Jan Beulich wrote: > >> >>> On 06.09.12 at 15:15, Matt Fleming <matt@xxxxxxxxxxxxxxxxx> wrote: > >> > + > >> > + pgd += i; > >> > + save[i] = *pgd; > >> > + set_pgd(pgd, efi_one_to_one_pgd[i]); > >> > + } > >> > >> Did you, as an alternative, consider switching to a different > >> CR3 instead of copying back and forth? > > > > I did consider it, but I couldn't convince myself whether or not the EFI > > pagetable would need to be manually kept in sync with any other > > pagetables. But now I look at the code a bit harder, it seems that > > should be taken care of automatically. In fact, the tboot code seems to > > do something similar. I'll try that approach. > > Actually, I think the copying approach is even broken - what if > multiple threads currently on the same address space want to > invoke a runtime call simultaneously? The first one to get here > would save the right values, but the second one wouldn't. Yeah, unfortunately I only realised that after I'd sent the patch. Switching pagetables around efi calls is a much better approach. -- 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