diff options
| author | Greg Pearson <greg.pearson@hp.com> | 2012-07-30 14:39:05 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-30 17:25:11 -0700 | 
| commit | 6c4088ac3a4d82779903433bcd5f048c58fb1aca (patch) | |
| tree | 340e08b70ce66e6ec540577de018ccf3025c4fba /kernel/sys.c | |
| parent | dc32f63453f56d07a1073a697dcd843dd3098c09 (diff) | |
| download | olio-linux-3.10-6c4088ac3a4d82779903433bcd5f048c58fb1aca.tar.xz olio-linux-3.10-6c4088ac3a4d82779903433bcd5f048c58fb1aca.zip  | |
pcdp: use early_ioremap/early_iounmap to access pcdp table
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>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/sys.c')
0 files changed, 0 insertions, 0 deletions