summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKlaus-D. Wacker <kdwacker@de.ibm.com>2008-08-21 17:10:25 +0200
committerJeff Garzik <jgarzik@redhat.com>2008-08-27 05:17:53 -0400
commit9b3b9ab6a7a43851ccb4633149d01239f99f275f (patch)
tree80127259f3d535dc84eb7c221dd98a1c8276ada2
parent261893d30b0ddb5587f9143df18a6efed39a7ed6 (diff)
downloadkernel-crypto-9b3b9ab6a7a43851ccb4633149d01239f99f275f.tar.gz
kernel-crypto-9b3b9ab6a7a43851ccb4633149d01239f99f275f.tar.xz
kernel-crypto-9b3b9ab6a7a43851ccb4633149d01239f99f275f.zip
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>
-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 6de28385b35..9bcfa04d863 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) ||