[PATCH] s390: device recognition
authorCornelia Huck <cohuck@de.ibm.com>
Fri, 29 Jul 2005 21:03:37 +0000 (14:03 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 29 Jul 2005 22:01:14 +0000 (15:01 -0700)
Close a small window where a device may be not operational again after senseid
finished and the "same device" check fails due to dev=0000 by checking for dnv
after stsch() by then setting the device to not operational.  (No need to
check for dnv in ccw_device_handle_oper() again since we don't do stsch() into
the subchannel's schib in the meantime and will get a crw anyway if the device
becomes not oper again).

Signed-off-by: Cornelia Huck <cohuck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/s390/cio/device_fsm.c

index 9b7f6f548b1df7c9e1fa530396a9fdcb3e888292..ee7a05e0c3baf60a5e0effd52ca5c9b26b8989ea 100644 (file)
@@ -235,6 +235,9 @@ ccw_device_recog_done(struct ccw_device *cdev, int state)
                sch->schib.pmcw.pam &
                sch->schib.pmcw.pom &
                sch->opm;
+       /* Check since device may again have become not operational. */
+       if (!sch->schib.pmcw.dnv)
+               state = DEV_STATE_NOT_OPER;
        if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID)
                /* Force reprobe on all chpids. */
                old_lpm = 0;