const char *buf, size_t count)
 {
        struct dasd_devmap *devmap;
-       int val;
-       char *endp;
+       unsigned int val;
 
        devmap = dasd_devmap_from_cdev(to_ccwdev(dev));
        if (IS_ERR(devmap))
                return PTR_ERR(devmap);
 
-       val = simple_strtoul(buf, &endp, 0);
-       if (((endp + 1) < (buf + count)) || (val > 1))
+       if (kstrtouint(buf, 0, &val) || val > 1)
                return -EINVAL;
 
        spin_lock(&dasd_devmap_lock);
 {
        struct dasd_devmap *devmap;
        struct dasd_device *device;
-       int val;
-       char *endp;
+       unsigned int val;
 
        devmap = dasd_devmap_from_cdev(to_ccwdev(dev));
        if (IS_ERR(devmap))
                return PTR_ERR(devmap);
 
-       val = simple_strtoul(buf, &endp, 0);
-       if (((endp + 1) < (buf + count)) || (val > 1))
+       if (kstrtouint(buf, 0, &val) || val > 1)
                return -EINVAL;
 
        spin_lock(&dasd_devmap_lock);
              const char *buf, size_t count)
 {
        struct dasd_devmap *devmap;
-       int val;
-       char *endp;
+       unsigned int val;
 
        devmap = dasd_devmap_from_cdev(to_ccwdev(dev));
        if (IS_ERR(devmap))
                return PTR_ERR(devmap);
 
-       val = simple_strtoul(buf, &endp, 0);
-       if (((endp + 1) < (buf + count)) || (val > 1))
+       if (kstrtouint(buf, 0, &val) || val > 1)
                return -EINVAL;
 
        spin_lock(&dasd_devmap_lock);
                    const char *buf, size_t count)
 {
        struct dasd_devmap *devmap;
+       unsigned int val;
        ssize_t rc;
-       int val;
-       char *endp;
 
        devmap = dasd_devmap_from_cdev(to_ccwdev(dev));
        if (IS_ERR(devmap))
                return PTR_ERR(devmap);
 
-       val = simple_strtoul(buf, &endp, 0);
-       if (((endp + 1) < (buf + count)) || (val > 1))
+       if (kstrtouint(buf, 0, &val) || val > 1)
                return -EINVAL;
 
        spin_lock(&dasd_devmap_lock);
               const char *buf, size_t count)
 {
        struct dasd_devmap *devmap;
-       int val, rc;
-       char *endp;
+       unsigned int val;
+       int rc;
 
        devmap = dasd_devmap_from_cdev(to_ccwdev(dev));
        if (IS_ERR(devmap))
        if (!devmap->device)
                return -ENODEV;
 
-       val = simple_strtoul(buf, &endp, 0);
-       if (((endp + 1) < (buf + count)) || (val > 1))
+       if (kstrtouint(buf, 0, &val) || val > 1)
                return -EINVAL;
 
        if (val) {