s390/sclp: reduce dependency on event type masks
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 9 Sep 2014 10:53:12 +0000 (12:53 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 25 Sep 2014 08:52:01 +0000 (10:52 +0200)
The event type masks can change asynchronously. These changes are reported
by SCLP to the OS by state-change events which are retrieved with the read
event data command. The SCLP driver has a request queue, there is a window
where the read event data request has not completed yet but the SCLP console
drivers are trying to queue output requests. As the masks are not updated
yet the requests are discarded.

The simplest fix is to queue the console requests independent of the
event type masks and rely on SCLP to return with an error code if a
specific event type is not available.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/sclp_early.c
drivers/s390/char/sclp_rw.c
drivers/s390/char/sclp_vt220.c

index 1918d9d..5bd6cb1 100644 (file)
@@ -281,7 +281,7 @@ out:
 
 static unsigned int __init sclp_con_check_linemode(struct init_sccb *sccb)
 {
-       if (!(sccb->sclp_send_mask & (EVTYP_OPCMD_MASK | EVTYP_PMSGCMD_MASK)))
+       if (!(sccb->sclp_send_mask & EVTYP_OPCMD_MASK))
                return 0;
        if (!(sccb->sclp_receive_mask & (EVTYP_MSG_MASK | EVTYP_PMSGCMD_MASK)))
                return 0;
Simple merge
Simple merge