diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2006-06-29 09:08:41 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-06-29 09:08:41 -0400 |
commit | 94bb063312d872d9269deb2e5c0c7c6d5b0318e1 (patch) | |
tree | bef899fbe742ee31d93ff0e077898d4562086f9e /drivers/s390/cio/device.h | |
parent | 5b5dd21a8e6652fc8b58a32757575cc7fce2b54d (diff) |
[S390] rework of channel measurement facility.
Fixes for several channel measurement facility bugs:
* Blocks copied from the hardware might not be consistent. Solve this
by moving the copying into idle state and repeating the copying.
* avg_sample_interval changed with every read, even though no new block
was available. Solve this by storing a timestamp when the last new
block was received.
* Several locking issues.
* Measurements were not reenabled after a disconnected device became
available again.
* Remove #defines for ioctls that were never implemented.
Signed-off-by: Cornelia Huck <cornelia.huck@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 8e0d1db3dd4e..00be9a5b4acd 100644 --- a/drivers/s390/cio/device.h +++ b/drivers/s390/cio/device.h | |||
@@ -27,6 +27,7 @@ enum dev_state { | |||
27 | DEV_STATE_DISCONNECTED, | 27 | DEV_STATE_DISCONNECTED, |
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 | /* last element! */ | 31 | /* last element! */ |
31 | NR_DEV_STATES | 32 | NR_DEV_STATES |
32 | }; | 33 | }; |
@@ -118,5 +119,8 @@ int ccw_device_stlck(struct ccw_device *); | |||
118 | void ccw_device_set_timeout(struct ccw_device *, int); | 119 | void ccw_device_set_timeout(struct ccw_device *, int); |
119 | extern struct subchannel_id ccw_device_get_subchannel_id(struct ccw_device *); | 120 | extern struct subchannel_id ccw_device_get_subchannel_id(struct ccw_device *); |
120 | 121 | ||
122 | /* Channel measurement facility related */ | ||
121 | void retry_set_schib(struct ccw_device *cdev); | 123 | void retry_set_schib(struct ccw_device *cdev); |
124 | void cmf_retry_copy_block(struct ccw_device *); | ||
125 | int cmf_reenable(struct ccw_device *); | ||
122 | #endif | 126 | #endif |