Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 17 Dec 2012 07:44:30 -0800 | Subject | Re: [GIT PULL] x86/uapi for 3.8 |
| |
On Mon, Dec 17, 2012 at 1:04 AM, Jan Beulich <JBeulich@suse.com> wrote: > > How about this being caused by using the same lower level > page table entries that swapper_pg_dir uses, namely including > the _PAGE_GLOBAL bits? efi_call_virt_{pre,epi}log() only write > CR3 (see 185034e72d591f9465e5e18f937ed642e7ea0070), but > would need to also flip CR4.PGE afaict.
Now *this* is the kind of issue that I could easily see causing major corruption, but be subtle enough to not happen reliably. Coming back from the EFI calls (or going into them) with stale TLB contents due to global pages could explain things.
Good thinking. That efi call code should use flush_tlb_kernel() (or __flush_tlb_global() if it wants to avoid any paravirtualization stuff) if it has global pages in different places from the normal kernel map. Does it really have that?
Linus
| |