summaryrefslogtreecommitdiff
path: root/drivers/s390
diff options
context:
space:
mode:
authorKlaus-D. Wacker <kdwacker@de.ibm.com>2008-08-21 15:10:25 (GMT)
committerJeff Garzik <jgarzik@redhat.com>2008-08-27 09:17:53 (GMT)
commit9b3b9ab6a7a43851ccb4633149d01239f99f275f (patch)
tree80127259f3d535dc84eb7c221dd98a1c8276ada2 /drivers/s390
parent261893d30b0ddb5587f9143df18a6efed39a7ed6 (diff)
downloadlinux-9b3b9ab6a7a43851ccb4633149d01239f99f275f.tar.xz
LCS recovery dumps when cable reconnect
LCS recovery dumps in irq routine when CCW address in Subchannel Status Word (SCSW) is zero. This occurs when recovery is driven after cable reconnect. Signed-off-by: Klaus-D. Wacker <kdwacker@de.ibm.com> Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/net/lcs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index 6de2838..9bcfa04 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -1412,7 +1412,8 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
}
/* How far in the ccw chain have we processed? */
if ((channel->state != LCS_CH_STATE_INIT) &&
- (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC)) {
+ (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) &&
+ (irb->scsw.cmd.cpa != 0)) {
index = (struct ccw1 *) __va((addr_t) irb->scsw.cmd.cpa)
- channel->ccws;
if ((irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED) ||