2006-08-07 15:05:49

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch] s390: retry after deferred condition code.

From: Cornelia Huck <[email protected]>

[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 <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
---

drivers/s390/cio/device_ops.c | 3 +++
1 files changed, 3 insertions(+)

diff -urpN linux-2.6/drivers/s390/cio/device_ops.c linux-2.6-patched/drivers/s390/cio/device_ops.c
--- linux-2.6/drivers/s390/cio/device_ops.c 2006-08-07 14:14:29.000000000 +0200
+++ linux-2.6-patched/drivers/s390/cio/device_ops.c 2006-08-07 14:14:43.000000000 +0200
@@ -263,6 +263,9 @@ ccw_device_wake_up(struct ccw_device *cd
/* 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)) {