From: Christian Borntraeger Date: Mon, 4 Feb 2013 22:53:24 +0000 (+0000) Subject: s390/sclpconsole: prevent char layer callback during initialization X-Git-Tag: v1.4.0-rc2~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=760794f784f66e262a9ca32821ba202cdf3a3e4b;p=thirdparty%2Fqemu.git 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 Signed-off-by: Alexander Graf --- diff --git a/hw/s390x/sclpconsole.c b/hw/s390x/sclpconsole.c index adc0ee83f49..effe51110f3 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,