diff options
author | Greg Pearson <greg.pearson@hp.com> | 2012-07-30 14:39:05 -0700 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2012-08-10 00:25:00 +0100 |
commit | ffb709e6aa95c3ba44fa8af9f7815e3c6cfed04e (patch) | |
tree | c440b29b50a2a2f64c204b490d1373ffaac5f4d3 /lib/vsprintf.c | |
parent | 898ece8e5e5102c627f8f2ef26d281f71b439169 (diff) | |
download | kernel_samsung_smdk4412-ffb709e6aa95c3ba44fa8af9f7815e3c6cfed04e.zip kernel_samsung_smdk4412-ffb709e6aa95c3ba44fa8af9f7815e3c6cfed04e.tar.gz kernel_samsung_smdk4412-ffb709e6aa95c3ba44fa8af9f7815e3c6cfed04e.tar.bz2 |
pcdp: use early_ioremap/early_iounmap to access pcdp table
commit 6c4088ac3a4d82779903433bcd5f048c58fb1aca upstream.
efi_setup_pcdp_console() is called during boot to parse the HCDP/PCDP
EFI system table and setup an early console for printk output. The
routine uses ioremap/iounmap to setup access to the HCDP/PCDP table
information.
The call to ioremap is happening early in the boot process which leads
to a panic on x86_64 systems:
panic+0x01ca
do_exit+0x043c
oops_end+0x00a7
no_context+0x0119
__bad_area_nosemaphore+0x0138
bad_area_nosemaphore+0x000e
do_page_fault+0x0321
page_fault+0x0020
reserve_memtype+0x02a1
__ioremap_caller+0x0123
ioremap_nocache+0x0012
efi_setup_pcdp_console+0x002b
setup_arch+0x03a9
start_kernel+0x00d4
x86_64_start_reservations+0x012c
x86_64_start_kernel+0x00fe
This replaces the calls to ioremap/iounmap in efi_setup_pcdp_console()
with calls to early_ioremap/early_iounmap which can be called during
early boot.
This patch was tested on an x86_64 prototype system which uses the
HCDP/PCDP table for early console setup.
Signed-off-by: Greg Pearson <greg.pearson@hp.com>
Acked-by: Khalid Aziz <khalid.aziz@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'lib/vsprintf.c')
0 files changed, 0 insertions, 0 deletions