Skip to content

Commit

Permalink
s390/sclpconsole: prevent char layer callback during initialization
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
borntraeger authored and Anthony Liguori committed Feb 13, 2013
1 parent 7ce4106 commit 760794f
Showing 1 changed file with 1 addition and 4 deletions.
5 changes: 1 addition & 4 deletions hw/s390x/sclpconsole.c
Expand Up @@ -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,
Expand Down

0 comments on commit 760794f

Please sign in to comment.