[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160427225122.GG21282@pd.tnic>
Date: Thu, 28 Apr 2016 00:51:22 +0200
From: Borislav Petkov <bp@...e.de>
To: Alex Thorlton <athorlton@....com>
Cc: linux-kernel@...r.kernel.org,
Matt Fleming <matt@...eblueprint.co.uk>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, x86@...nel.org,
linux-efi@...r.kernel.org, Russ Anderson <rja@....com>,
Dimitri Sivanich <sivanich@....com>,
mike travis <travis@....com>, Nathan Zimmer <nzimmer@....com>
Subject: Re: [BUG] x86/efi: MMRs no longer properly mapped after switch to
isolated page table
On Wed, Apr 27, 2016 at 10:41:32AM -0500, Alex Thorlton wrote:
> A bit of digging will tell us that this is the failing line:
>
> m_n_config.v = uv_read_local_mmr(UVH_RH_GAM_CONFIG_MMR );
That looks like
All code
========
0: 65 48 03 05 1d b8 49 add %gs:0x7e49b81d(%rip),%rax # 0x7e49b825
7: 7e
8: 80 78 14 02 cmpb $0x2,0x14(%rax)
c: ba 00 00 00 fa mov $0xfa000000,%edx
11: 76 0b jbe 0x1e
13: 48 89 c8 mov %rcx,%rax
16: 65 48 03 05 07 b8 49 add %gs:0x7e49b807(%rip),%rax # 0x7e49b825
1d: 7e
1e: 48 b8 00 00 60 01 00 movabs $0xffff880001600000,%rax
25: 88 ff ff
28: 48 09 d0 or %rdx,%rax
2b:* 48 8b 00 mov (%rax),%rax <-- trapping instruction
2e: 88 c3 mov %al,%bl
30: 48 c1 e8 06 shr $0x6,%rax
34: 41 bd 01 00 00 00 mov $0x1,%r13d
3a: 88 c1 mov %al,%cl
3c: 83 e3 3f and $0x3f,%ebx
but why does this have anything to do with the EFI pagetable, at all?
The MMRs should be mapped in the normal kernel page table, right?
And your dirty fix of mapping into trampoline_pgd doesn't make any
sense...
How do the MMRs get mapped on that box exactly? And why aren't they
mapped in the normal kernel page table all of a sudden?
/me is confused and goes to bed.
--
Regards/Gruss,
Boris.
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
--
Powered by blists - more mailing lists