diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2007-03-05 17:36:02 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-03-05 17:36:02 -0500 |
commit | 2470b648e17e0216922bb78c7f05b4668402459a (patch) | |
tree | 9abfcde8b3e9e6c9cfa8713da4e5ad245fe6afbd /drivers/s390/cio | |
parent | 7c8427c3fa1b2e77c5bd8cf219c1d55dccd0f167 (diff) |
[S390] cio: Call cancel_halt_clear even when actl == 0.
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>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/device_fsm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c index 5172060acdbe..089a3ddd6265 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c | |||
@@ -144,8 +144,8 @@ ccw_device_cancel_halt_clear(struct ccw_device *cdev) | |||
144 | ret = stsch(sch->schid, &sch->schib); | 144 | ret = stsch(sch->schid, &sch->schib); |
145 | if (ret || !sch->schib.pmcw.dnv) | 145 | if (ret || !sch->schib.pmcw.dnv) |
146 | return -ENODEV; | 146 | return -ENODEV; |
147 | if (!sch->schib.pmcw.ena || sch->schib.scsw.actl == 0) | 147 | if (!sch->schib.pmcw.ena) |
148 | /* Not operational or no activity -> done. */ | 148 | /* Not operational -> done. */ |
149 | return 0; | 149 | return 0; |
150 | /* Stage 1: cancel io. */ | 150 | /* Stage 1: cancel io. */ |
151 | if (!(sch->schib.scsw.actl & SCSW_ACTL_HALT_PEND) && | 151 | if (!(sch->schib.scsw.actl & SCSW_ACTL_HALT_PEND) && |