diff options
author | Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 2009-12-07 06:51:32 -0500 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2009-12-07 06:51:32 -0500 |
commit | d7d12ef2befac4fed0dccaddff11338b654804df (patch) | |
tree | 1563b299e609024844affbc3ebba99c0718db238 /drivers/s390/cio/device.h | |
parent | 52ef0608e3ee4a511725e443c4b572fece22b353 (diff) |
[S390] cio: make steal lock procedure more robust
An Unconditional Reserve + Release operation (steal lock) for a
boxed device may fail when encountering special error cases
(e.g. unit checks or path errors). Fix this by using the more
robust ccw_request infrastructure for performing the steal lock
CCW program.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/device.h')
-rw-r--r-- | drivers/s390/cio/device.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/s390/cio/device.h b/drivers/s390/cio/device.h index 2df519bb877e..bcfe13e42638 100644 --- a/drivers/s390/cio/device.h +++ b/drivers/s390/cio/device.h | |||
@@ -28,6 +28,7 @@ enum dev_state { | |||
28 | DEV_STATE_DISCONNECTED_SENSE_ID, | 28 | DEV_STATE_DISCONNECTED_SENSE_ID, |
29 | DEV_STATE_CMFCHANGE, | 29 | DEV_STATE_CMFCHANGE, |
30 | DEV_STATE_CMFUPDATE, | 30 | DEV_STATE_CMFUPDATE, |
31 | DEV_STATE_STEAL_LOCK, | ||
31 | /* last element! */ | 32 | /* last element! */ |
32 | NR_DEV_STATES | 33 | NR_DEV_STATES |
33 | }; | 34 | }; |
@@ -116,6 +117,9 @@ void ccw_device_verify_done(struct ccw_device *, int); | |||
116 | void ccw_device_disband_start(struct ccw_device *); | 117 | void ccw_device_disband_start(struct ccw_device *); |
117 | void ccw_device_disband_done(struct ccw_device *, int); | 118 | void ccw_device_disband_done(struct ccw_device *, int); |
118 | 119 | ||
120 | void ccw_device_stlck_start(struct ccw_device *, void *, void *, void *); | ||
121 | void ccw_device_stlck_done(struct ccw_device *, void *, int); | ||
122 | |||
119 | int ccw_device_call_handler(struct ccw_device *); | 123 | int ccw_device_call_handler(struct ccw_device *); |
120 | 124 | ||
121 | int ccw_device_stlck(struct ccw_device *); | 125 | int ccw_device_stlck(struct ccw_device *); |