drivers/tty/hvc/hvc_tile.c: properly return -EAGAIN
authorChris Metcalf <cmetcalf@ezchip.com>
Mon, 4 May 2015 21:25:12 +0000 (17:25 -0400)
committerChris Metcalf <cmetcalf@ezchip.com>
Mon, 11 May 2015 15:22:20 +0000 (11:22 -0400)
We were returning zero if no bytes could be written to the Tilera
hypervisor console device, but this causes the output to be truncated.
By returning -EAGAIN the tty hvc driver will come back and try again,
which gives the semantics we want, and avoids dropping console output.

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
drivers/tty/hvc/hvc_tile.c

index 3f6cd31..9da1e84 100644 (file)
@@ -51,7 +51,8 @@ int tile_console_write(const char *buf, int count)
                              _SIM_CONTROL_OPERATOR_BITS));
                return 0;
        } else {
-               return hv_console_write((HV_VirtAddr)buf, count);
+               /* Translate 0 bytes written to EAGAIN for hvc_console_print. */
+               return hv_console_write((HV_VirtAddr)buf, count) ?: -EAGAIN;
        }
 }