aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulian Calaby <julian.calaby@gmail.com>2010-12-03 17:56:45 +0000
committerDavid S. Miller <davem@davemloft.net>2010-12-12 14:50:42 -0800
commit154337688bfa970453836e65a27de011aba55331 (patch)
tree2844fbe712396b9e710ed681c7f43d7e6668f5f1
parentMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 (diff)
downloadlinux-dev-154337688bfa970453836e65a27de011aba55331.tar.xz
linux-dev-154337688bfa970453836e65a27de011aba55331.zip
sparc: prom: Sanitize return value from prom_nbputchar()
Signed-off-by: Julian Calaby <julian.calaby@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--arch/sparc/prom/console_32.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/sparc/prom/console_32.c b/arch/sparc/prom/console_32.c
index 48863108a44c..b05e3db5fa63 100644
--- a/arch/sparc/prom/console_32.c
+++ b/arch/sparc/prom/console_32.c
@@ -27,13 +27,14 @@ static int prom_nbputchar(const char *buf)
spin_lock_irqsave(&prom_lock, flags);
switch(prom_vers) {
case PROM_V0:
- i = (*(romvec->pv_nbputchar))(*buf);
+ if ((*(romvec->pv_nbputchar))(*buf))
+ i = 1;
break;
case PROM_V2:
case PROM_V3:
if ((*(romvec->pv_v2devops).v2_dev_write)(*romvec->pv_v2bootargs.fd_stdout,
buf, 0x1) == 1)
- i = 0;
+ i = 1;
break;
default:
break;
@@ -47,7 +48,7 @@ void prom_console_write_buf(const char *buf, int len)
{
while (len) {
int n = prom_nbputchar(buf);
- if (n)
+ if (n < 0)
continue;
len--;
buf++;