Messages in this thread Patch in this message | | | Date | Thu, 6 Jun 2013 17:58:22 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH 4/4] x86, efi: Map runtime services 1:1 |
| |
On Thu, Jun 06, 2013 at 03:29:08PM +0200, Borislav Petkov wrote: > On Thu, Jun 06, 2013 at 02:14:39PM +0100, Matt Fleming wrote: > > This patch makes my TunnelMountain machine spin in handle_pte_fault() > > when triggering one of the "firmware makes references to physical > > addresses" code paths. > > > > I'll try and dig into this tomorrow to figure out what's going on. > > Hmmm, looks like we have forgotten to map an EFI region and we do a #PF > when executing the EFI code.
How about this one - I don't know whether it would flood dmesg, I guess you'll have to try.
We could try using blockconsole to catch dmesg to an usb drive, though, even if you don't have serial or netconsole or such. :-).
-- diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 654be4ae3047..7a6129afdff1 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -1021,6 +1021,9 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code) /* Get the faulting address: */ address = read_cr2(); + if (read_cr3() == (unsigned long)real_mode_header->trampoline_pgd) + pr_err("%s: #PF addr: 0x%lx\n", __func__, address); + /* * Detect and handle instructions that would cause a page fault for * both a tracked kernel page and a userspace page. -- Regards/Gruss, Boris.
Sent from a fat crate under my desk. Formatting is fine. --
| |