sparc: prom: Sanitize return value from prom_nbputchar()
authorJulian Calaby <julian.calaby@gmail.com>
Fri, 3 Dec 2010 17:56:45 +0000 (17:56 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 12 Dec 2010 22:50:42 +0000 (14:50 -0800)
Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/prom/console_32.c

index 48863108a44ce6af379436c7f32ba2063e39a3f2..b05e3db5fa63c766718c79578d200d6ad99967b6 100644 (file)
@@ -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++;