From b45418842cf6d5cc5299fc4fcea528328113534a Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Thu, 17 Apr 2008 07:46:00 +0200 Subject: [PATCH] --- yaml --- r: 88407 b: refs/heads/master c: fe6173d9b33dba18ec462051750fb1b9abcd796d h: refs/heads/master i: 88405: 352928ffbe61a19439c84332a30f0c27b184e0ae 88403: 25359f7645ae2b094dc1c3b82c3bb0ccadb4229b 88399: 354f1d4e14a4f1754712dbccbb47f052b32b9c0d v: v3 --- [refs] | 2 +- trunk/drivers/s390/cio/device_ops.c | 9 ++++++++- trunk/drivers/s390/cio/device_status.c | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 52aa9a18ab04..5f6dcb6910fc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 22806dc1a8ffd88a7c7bdd070879e6e323db496a +refs/heads/master: fe6173d9b33dba18ec462051750fb1b9abcd796d diff --git a/trunk/drivers/s390/cio/device_ops.c b/trunk/drivers/s390/cio/device_ops.c index 49b58eb0fab8..a1718a0aa539 100644 --- a/trunk/drivers/s390/cio/device_ops.c +++ b/trunk/drivers/s390/cio/device_ops.c @@ -193,8 +193,15 @@ int ccw_device_start_key(struct ccw_device *cdev, struct ccw1 *cpa, return -EACCES; } ret = cio_start_key (sch, cpa, lpm, key); - if (ret == 0) + switch (ret) { + case 0: cdev->private->intparm = intparm; + break; + case -EACCES: + case -ENODEV: + dev_fsm_event(cdev, DEV_EVENT_VERIFY); + break; + } return ret; } diff --git a/trunk/drivers/s390/cio/device_status.c b/trunk/drivers/s390/cio/device_status.c index ebe0848cfe33..4764b9e00b9e 100644 --- a/trunk/drivers/s390/cio/device_status.c +++ b/trunk/drivers/s390/cio/device_status.c @@ -312,6 +312,7 @@ ccw_device_do_sense(struct ccw_device *cdev, struct irb *irb) { struct subchannel *sch; struct ccw1 *sense_ccw; + int rc; sch = to_subchannel(cdev->dev.parent); @@ -337,7 +338,10 @@ ccw_device_do_sense(struct ccw_device *cdev, struct irb *irb) /* Reset internal retry indication. */ cdev->private->flags.intretry = 0; - return cio_start(sch, sense_ccw, 0xff); + rc = cio_start(sch, sense_ccw, 0xff); + if (rc == -ENODEV || rc == -EACCES) + dev_fsm_event(cdev, DEV_EVENT_VERIFY); + return rc; } /*