sparc: Write to prom console using indirect buffer.
authorDavid S. Miller <davem@davemloft.net>
Wed, 1 Dec 2010 04:15:58 +0000 (20:15 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 7 Jan 2011 21:58:24 +0000 (13:58 -0800)
commit8bd4c943ef702ec2b71f55945b02350c41f62c78
tree2e442b9ee2e65d362cd6a3c1d1e54fed13ac5da9
parent3bf4603189bbc26df2c9dc69004039aaca9efceb
sparc: Write to prom console using indirect buffer.

[ Upstream commit 595a251c0740785fd3c0d2156d78578c7479811e ]

sparc64 systems have a restriction in that passing in buffer
addressses above 4GB to prom calls is not reliable.

We end up violating this when we do prom console writes, because we
use an on-stack buffer to translate '\n' into '\r\n'.

So instead, do this translation into an intermediate buffer, which is
in the kernel image and thus below 4GB, then pass that to the PROM
console write calls.

On the 32-bit side we don't have to deal with any of these issues, so
the new prom_console_write_buf() uses the existing prom_nbputchar()
implementation.  However we can now mark those routines static.

Since the 64-bit side completely uses new code we can delete the
putchar bits as they are now completely unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/sparc/include/asm/oplib_32.h
arch/sparc/include/asm/oplib_64.h
arch/sparc/prom/console_32.c
arch/sparc/prom/console_64.c
arch/sparc/prom/printf.c