diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2015-09-09 10:29:59 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2015-10-14 14:32:04 +0200 |
commit | ab97d211ef1863942a90d7c93dfd563f0381ca87 (patch) | |
tree | 99e9a2ef567728b7fdf378e681601501ce4a4f86 /drivers/s390/cio/cmf.c | |
parent | s390/cio: use kmem_cache for extended measurement block allocation (diff) | |
download | linux-ab97d211ef1863942a90d7c93dfd563f0381ca87.tar.xz linux-ab97d211ef1863942a90d7c93dfd563f0381ca87.zip |
s390/cio: reactivate cmf after hibernate
During resume from hibernate we already reenable measurement block
updates on a per device basis. In addition to that we also need to
activate channel measurement globally using the set channel monitor
instruction.
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/cmf.c')
-rw-r--r-- | drivers/s390/cio/cmf.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c index de7074fc6a2c..b2afad5a5682 100644 --- a/drivers/s390/cio/cmf.c +++ b/drivers/s390/cio/cmf.c @@ -1312,6 +1312,19 @@ int cmf_reenable(struct ccw_device *cdev) return cmbops->set(cdev, 2); } +/** + * cmf_reactivate() - reactivate measurement block updates + * + * Use this during resume from hibernate. + */ +void cmf_reactivate(void) +{ + spin_lock(&cmb_area.lock); + if (!list_empty(&cmb_area.list)) + cmf_activate(cmb_area.mem, 1); + spin_unlock(&cmb_area.lock); +} + static int __init init_cmbe(void) { cmbe_cache = kmem_cache_create("cmbe_cache", sizeof(struct cmbe), |