Messages in this thread | | | Subject | Re: [PATCH 4/6] x86: fix some bugs about EFI runtime code mapping | From | "Huang, Ying" <> | Date | Fri, 25 Jan 2008 17:26:17 +0800 |
| |
On Fri, 2008-01-25 at 10:16 +0100, Ingo Molnar wrote: > * Huang, Ying <ying.huang@intel.com> wrote: > > > This patch fixes some bugs of making EFI runtime code executable. > > > > - Use change_page_attr in i386 too. Because the runtime code may be > > mapped not through ioremap. > > > > - If there is no _PAGE_NX in __supported_pte_mask, the change_page_attr > > is not called. > > > > - Make efi_ioremap map pages as PAGE_KERNEL_EXEC, because EFI runtime > > code may be mapped through efi_ioremap. > > thanks, applied. > > note that here: > > > - set_fixmap_nocache(FIX_EFI_IO_MAP_FIRST_PAGE - pages_mapped, > > - offset); > > + __set_fixmap(FIX_EFI_IO_MAP_FIRST_PAGE - pages_mapped, > > + offset, PAGE_KERNEL_EXEC); > > you've changed it from nocache-noexec to cached-exec. I suspect that's > what we want - except if an early EFI area can be non-prefetchable > device memory. Can that ever happen? Would you like to have > PAGE_KERNEL_NOCACHE_EXEC perhaps? I implemented that yesterday but did > not commit it yet. (see the patch below)
Yes. EFI area can be non-prefetchable device memory. I should use PAGE_KERNEL_NOCACHE_EXEC.
A question about this:
The MTRR on x86 should have set the memory area as un-cachable. Why do we bother to set it in page table?
Best Regards, Huang Ying
| |