diff options
Diffstat (limited to 'drivers/s390/cio/cmf.c')
-rw-r--r-- | drivers/s390/cio/cmf.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c index f4c132ab39ed..2808b6833b9e 100644 --- a/drivers/s390/cio/cmf.c +++ b/drivers/s390/cio/cmf.c | |||
@@ -1219,16 +1219,21 @@ static ssize_t cmb_enable_store(struct device *dev, | |||
1219 | { | 1219 | { |
1220 | struct ccw_device *cdev; | 1220 | struct ccw_device *cdev; |
1221 | int ret; | 1221 | int ret; |
1222 | unsigned long val; | ||
1223 | |||
1224 | ret = strict_strtoul(buf, 16, &val); | ||
1225 | if (ret) | ||
1226 | return ret; | ||
1222 | 1227 | ||
1223 | cdev = to_ccwdev(dev); | 1228 | cdev = to_ccwdev(dev); |
1224 | 1229 | ||
1225 | switch (buf[0]) { | 1230 | switch (val) { |
1226 | case '0': | 1231 | case 0: |
1227 | ret = disable_cmf(cdev); | 1232 | ret = disable_cmf(cdev); |
1228 | if (ret) | 1233 | if (ret) |
1229 | dev_info(&cdev->dev, "disable_cmf failed (%d)\n", ret); | 1234 | dev_info(&cdev->dev, "disable_cmf failed (%d)\n", ret); |
1230 | break; | 1235 | break; |
1231 | case '1': | 1236 | case 1: |
1232 | ret = enable_cmf(cdev); | 1237 | ret = enable_cmf(cdev); |
1233 | if (ret && ret != -EBUSY) | 1238 | if (ret && ret != -EBUSY) |
1234 | dev_info(&cdev->dev, "enable_cmf failed (%d)\n", ret); | 1239 | dev_info(&cdev->dev, "enable_cmf failed (%d)\n", ret); |