diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2006-08-07 19:00:30 +0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-08-07 19:00:30 +0400 |
commit | 4bc0c4f9e74e7a5d62ef4db923b377f2aa474a8f (patch) | |
tree | 6f504c1716d8710025e5a58153b90cd4f2d893f2 /drivers | |
parent | 25a2001a285e187d99ea347693bedd73b3e0722a (diff) | |
download | linux-4bc0c4f9e74e7a5d62ef4db923b377f2aa474a8f.tar.xz |
[S390] retry after deferred condition code.
Do a retry of read device characteristics / read configuration
data when a deferred condition code 1 is encountered in
ccw_device_wake_up().
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/s390/cio/device_ops.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/s390/cio/device_ops.c b/drivers/s390/cio/device_ops.c index a60124264bee..9e3de0bd59b5 100644 --- a/drivers/s390/cio/device_ops.c +++ b/drivers/s390/cio/device_ops.c @@ -263,6 +263,9 @@ ccw_device_wake_up(struct ccw_device *cdev, unsigned long ip, struct irb *irb) /* Abuse intparm for error reporting. */ if (IS_ERR(irb)) cdev->private->intparm = -EIO; + else if (irb->scsw.cc == 1) + /* Retry for deferred condition code. */ + cdev->private->intparm = -EAGAIN; else if ((irb->scsw.dstat != (DEV_STAT_CHN_END|DEV_STAT_DEV_END)) || (irb->scsw.cstat != 0)) { |