]> err.no Git - linux-2.6/commitdiff
[S390] cio: improve unit check handling for internal operations
authorPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
Wed, 4 Oct 2006 18:02:30 +0000 (20:02 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 4 Oct 2006 18:02:30 +0000 (20:02 +0200)
Retry internal operation after unit check instead of aborting them.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/device_ops.c

index 8994800dba4aa7e852c818d5219b111678dba6b8..84b9b18eabc25159d752ea1f78a0792263e97bd3 100644 (file)
@@ -288,10 +288,10 @@ ccw_device_wake_up(struct ccw_device *cdev, unsigned long ip, struct irb *irb)
                 if (cdev->private->flags.doverify ||
                         cdev->private->state == DEV_STATE_VERIFY)
                         cdev->private->intparm = -EAGAIN;
-                if ((irb->scsw.dstat & DEV_STAT_UNIT_CHECK) &&
-                    !(irb->ecw[0] &
-                      (SNS0_CMD_REJECT | SNS0_INTERVENTION_REQ)))
-                        cdev->private->intparm = -EAGAIN;
+               else if ((irb->scsw.dstat & DEV_STAT_UNIT_CHECK) &&
+                        !(irb->ecw[0] &
+                          (SNS0_CMD_REJECT | SNS0_INTERVENTION_REQ)))
+                       cdev->private->intparm = -EAGAIN;
                else if ((irb->scsw.dstat & DEV_STAT_ATTENTION) &&
                         (irb->scsw.dstat & DEV_STAT_DEV_END) &&
                         (irb->scsw.dstat & DEV_STAT_UNIT_EXCEP))