git.openpandora.org
/
pandora-kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9741d4e
)
efi, x86: Pass a proper identity mapping in efi_call_phys_prelog
author
Nathan Zimmer
<nzimmer@sgi.com>
Tue, 8 Jan 2013 15:02:43 +0000
(09:02 -0600)
committer
Ben Hutchings
<ben@decadent.org.uk>
Wed, 6 Feb 2013 04:33:43 +0000
(
04:33
+0000)
commit
b8f2c21db390273c3eaf0e5308faeaeb1e233840
upstream.
Update efi_call_phys_prelog to install an identity mapping of all available
memory. This corrects a bug on very large systems with more then 512 GB in
which bios would not be able to access addresses above not in the mapping.
The result is a crash that looks much like this.
BUG: unable to handle kernel paging request at
000000effd870020
IP: [<
0000000078bce331
>] 0x78bce330
PGD 0
Oops: 0000 [#1] SMP
Modules linked in:
CPU 0
Pid: 0, comm: swapper/0 Tainted: G W 3.8.0-rc1-next-
20121224
-medusa_ntz+ #2 Intel Corp. Stoutland Platform
RIP: 0010:[<
0000000078bce331
>] [<
0000000078bce331
>] 0x78bce330
RSP: 0000:
ffffffff81601d28
EFLAGS:
00010006
RAX:
0000000078b80e18
RBX:
0000000000000004
RCX:
0000000000000004
RDX:
0000000078bcf958
RSI:
0000000000002400
RDI:
8000000000000000
RBP:
0000000078bcf760
R08:
000000effd870000
R09:
0000000000000000
R10:
0000000000000000
R11:
00000000000000c3
R12:
0000000000000030
R13:
000000effd870000
R14:
0000000000000000
R15:
ffff88effd870000
FS:
0000000000000000
(0000) GS:
ffff88effe400000
(0000) knlGS:
0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
CR2:
000000effd870020
CR3:
000000000160c000
CR4:
00000000000006b0
DR0:
0000000000000000
DR1:
0000000000000000
DR2:
0000000000000000
DR3:
0000000000000000
DR6:
00000000ffff0ff0
DR7:
0000000000000400
Process swapper/0 (pid: 0, threadinfo
ffffffff81600000
, task
ffffffff81614400
)
Stack:
0000000078b80d18
0000000000000004
0000000078bced7b
ffff880078b81fff
0000000000000000
0000000000000082
0000000078bce3a8
0000000000002400
0000000060000202
0000000078b80da0
0000000078bce45d
ffffffff8107cb5a
Call Trace:
[<
ffffffff8107cb5a
>] ? on_each_cpu+0x77/0x83
[<
ffffffff8102f4eb
>] ? change_page_attr_set_clr+0x32f/0x3ed
[<
ffffffff81035946
>] ? efi_call4+0x46/0x80
[<
ffffffff816c5abb
>] ? efi_enter_virtual_mode+0x1f5/0x305
[<
ffffffff816aeb24
>] ? start_kernel+0x34a/0x3d2
[<
ffffffff816ae5ed
>] ? repair_env_string+0x60/0x60
[<
ffffffff816ae2be
>] ? x86_64_start_reservations+0xba/0xc1
[<
ffffffff816ae120
>] ? early_idt_handlers+0x120/0x120
[<
ffffffff816ae419
>] ? x86_64_start_kernel+0x154/0x163
Code: Bad RIP value.
RIP [<
0000000078bce331
>] 0x78bce330
RSP <
ffffffff81601d28
>
CR2:
000000effd870020
---[ end trace
ead828934fef5eab
]---
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Nathan Zimmer <nzimmer@sgi.com>
Signed-off-by: Robin Holt <holt@sgi.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
No differences found