]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commitdiff
s390/sclpconsole: prevent char layer callback during initialization
authorChristian Borntraeger <borntraeger@de.ibm.com>
Mon, 4 Feb 2013 22:53:24 +0000 (22:53 +0000)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 13 Feb 2013 17:56:02 +0000 (11:56 -0600)
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>
hw/s390x/sclpconsole.c

index adc0ee83f4912078d48febf9a7130e8280a8fbbf..effe51110f38e4b20f5ccbb53a51569ad93f2711 100644 (file)
@@ -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,