summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2013-02-04 22:53:24 +0000
committerAnthony Liguori <aliguori@us.ibm.com>2013-02-13 11:56:02 -0600
commit760794f784f66e262a9ca32821ba202cdf3a3e4b (patch)
tree74d65b3eaff82c79bd2a3c89dce78182bce534be
parent7ce4106c2125eca8f7f61f460456a49074c13e56 (diff)
downloadqemu-760794f784f66e262a9ca32821ba202cdf3a3e4b.tar.gz
s390/sclpconsole: prevent char layer callback during initialization
Starting a qemu with an sclp console and pressing a key very early can result in "qemu-system-s390x: hw/s390x/sclpconsole.c:60: receive_from_chr_layer: Assertion `scon->iov' failed." Lets make sure that the init process is finished, since the iov is allocated after CHR_EVENT_OPENED by also checking for scon->iov. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--hw/s390x/sclpconsole.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/hw/s390x/sclpconsole.c b/hw/s390x/sclpconsole.c
index adc0ee83f4..effe51110f 100644
--- a/hw/s390x/sclpconsole.c
+++ b/hw/s390x/sclpconsole.c
@@ -44,12 +44,9 @@ typedef struct SCLPConsole {
/* Return number of bytes that fit into iov buffer */
static int chr_can_read(void *opaque)
{
- int can_read;
SCLPConsole *scon = opaque;
- can_read = SIZE_BUFFER_VT220 - scon->iov_data_len;
-
- return can_read;
+ return scon->iov ? SIZE_BUFFER_VT220 - scon->iov_data_len : 0;
}
/* Receive n bytes from character layer, save in iov buffer,