[S390] cio: Call cancel_halt_clear even when actl == 0.
authorCornelia Huck <cornelia.huck@de.ibm.com>
Mon, 5 Mar 2007 22:36:02 +0000 (23:36 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 5 Mar 2007 22:36:02 +0000 (23:36 +0100)
The subchannel may just be status pending, even with actl == 0. We
must go through the cancel_halt_clear procedure to put the subchannel
into a defined state.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/device_fsm.c

index 5172060acdbe7327471c8cc91d100f681ce0b734..089a3ddd6265351a8131762696e77481e99a0e87 100644 (file)
@@ -144,8 +144,8 @@ ccw_device_cancel_halt_clear(struct ccw_device *cdev)
        ret = stsch(sch->schid, &sch->schib);
        if (ret || !sch->schib.pmcw.dnv)
                return -ENODEV; 
-       if (!sch->schib.pmcw.ena || sch->schib.scsw.actl == 0)
-               /* Not operational or no activity -> done. */
+       if (!sch->schib.pmcw.ena)
+               /* Not operational -> done. */
                return 0;
        /* Stage 1: cancel io. */
        if (!(sch->schib.scsw.actl & SCSW_ACTL_HALT_PEND) &&