Skip to content

Commit

Permalink
powerpc/powernv: Workaround OFW issues in prom_init.c
Browse files Browse the repository at this point in the history
Open Firmware on OPAL machines seems to have issues if we close
stdin and/or we try to print things after calling "quiesce" so
we avoid doing both.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Benjamin Herrenschmidt committed Dec 7, 2011
1 parent cee72d5 commit 40dfef6
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions arch/powerpc/kernel/prom_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -2969,9 +2969,11 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
/*
* in case stdin is USB and still active on IBM machines...
* Unfortunately quiesce crashes on some powermacs if we have
* closed stdin already (in particular the powerbook 101).
* closed stdin already (in particular the powerbook 101). It
* appears that the OPAL version of OFW doesn't like it either.
*/
if (RELOC(of_platform) != PLATFORM_POWERMAC)
if (RELOC(of_platform) != PLATFORM_POWERMAC &&
RELOC(of_platform) != PLATFORM_OPAL)
prom_close_stdin();

/*
Expand All @@ -2987,8 +2989,12 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
* is common to us and kexec
*/
hdr = RELOC(dt_header_start);
prom_printf("returning from prom_init\n");
prom_debug("->dt_header_start=0x%x\n", hdr);

/* Don't print anything after quiesce under OPAL, it crashes OFW */
if (RELOC(of_platform) != PLATFORM_OPAL) {
prom_printf("returning from prom_init\n");
prom_debug("->dt_header_start=0x%x\n", hdr);
}

#ifdef CONFIG_PPC32
reloc_got2(-offset);
Expand Down

0 comments on commit 40dfef6

Please sign in to comment.