aboutsummaryrefslogtreecommitdiff
path: root/hw/char/sclpconsole-lm.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/char/sclpconsole-lm.c')
-rw-r--r--hw/char/sclpconsole-lm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c
index dbe753147b..9a563269e6 100644
--- a/hw/char/sclpconsole-lm.c
+++ b/hw/char/sclpconsole-lm.c
@@ -89,7 +89,9 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
scon->buf[scon->length] = *buf;
scon->length += 1;
if (scon->echo) {
- qemu_chr_fe_write(scon->chr, buf, size);
+ /* XXX this blocks entire thread. Rewrite to use
+ * qemu_chr_fe_write and background I/O callbacks */
+ qemu_chr_fe_write_all(scon->chr, buf, size);
}
}