summary refs log tree commit diff
path: root/arch/sparc/prom
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 /arch/sparc/prom
parent23bcbf1b63350ed529f7dfb8a5c459e6e0c1a3ca (diff)
downloadlinux-154337688bfa970453836e65a27de011aba55331.tar.gz
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>
Diffstat (limited to 'arch/sparc/prom')
-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++;