Re: [PATCH][EFI] Run EFI in physical mode

From: Eric W. Biederman
Date: Mon Aug 16 2010 - 19:40:09 EST



"H. Peter Anvin" <hpa@xxxxxxxxx> writes:
> "huang ying" <huang.ying.caritas@xxxxxxxxx> wrote:
>
>>On Mon, Aug 16, 2010 at 11:27 AM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
>>> No, it should not be dynamic; rather we should unify all the users
>>> who need a 1:1 map and just keep that page table set around.

We still want to restore cr3 from the local task structure as soon
as is reasonable, as an identity mapped page table will have page 0
mapped and thus hide null pointer dereferences.

>>Agree. One known issue of global 1:1 map is that we need to make at
>>least part of page table PAGE_KERNEL_EXEC for EFI runtime code, and
>>change_page_attr can not be used before page allocator is available.

> For the 1:1 map we probably should make all pages executable; other
> things need it too, but we shouldn't have it mapped in except when
> needed.

We need to be careful in the setup of the global page table so that
we are in sync with the pat structure for the attributes pages
are mapped so that we don't map a page as cached and uncached
at the same time. Otherwise we could accidentally get cache
corruption. To do that would seem to mean change_page_attr
is relevant at least after we switch from our default set of
page permissions.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/