On Fri, Jul 19, 2013 at 04:21:28PM +0900, Jingoo Han wrote:
The usage of strict_strtoul() and strict_strtol() is not preferred,
because strict_strtoul() and strict_strtol() are obsolete. Thus,
kstrtoul() and kstrtol() should be used.
Signed-off-by: Jingoo Han <jg1.han@xxxxxxxxxxx>
Nice cleanup, however I'm not going to apply this one:
@@ -1220,13 +1224,15 @@ dasd_expires_store(struct device *dev, struct device_attribute *attr,
{
struct dasd_device *device;
unsigned long val;
+ int err;
device = dasd_device_from_cdev(to_ccwdev(dev));
if (IS_ERR(device))
return -ENODEV;
-
- if ((strict_strtoul(buf, 10, &val) != 0) ||
- (val > DASD_EXPIRES_MAX) || val == 0) {
+ err = kstrtoul(buf, 10, &val);
+ if (err)
+ return err;
+ if ((val > DASD_EXPIRES_MAX) || val == 0)
dasd_put_device(device);
return -EINVAL;
}
-ECOMPILE (missing opening brace at if statement).
@@ -1302,13 +1314,17 @@ dasd_timeout_store(struct device *dev, struct device_attribute *attr,
struct dasd_device *device;
struct request_queue *q;
unsigned long val, flags;
+ int err;
device = dasd_device_from_cdev(to_ccwdev(dev));
if (IS_ERR(device) || !device->block)
return -ENODEV;
- if ((strict_strtoul(buf, 10, &val) != 0) ||
- val > UINT_MAX / HZ) {
+ err = kstrtoul(buf, 10, &val);
+ if (err)
+ return err;
+
Missing dasd_put_device().
diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c
index 84846c2..959135a 100644
--- a/drivers/s390/cio/ccwgroup.c
+++ b/drivers/s390/cio/ccwgroup.c
@@ -137,7 +137,7 @@ static ssize_t ccwgroup_online_store(struct device *dev,
if (!try_module_get(gdrv->driver.owner))
return -EINVAL;
- ret = strict_strtoul(buf, 0, &value);
+ ret = kstrtoul(buf, 0, &value);
if (ret)
goto out;
If all conversions were like this one, I would apply your patch.
--- a/drivers/s390/net/qeth_l3_sys.c
+++ b/drivers/s390/net/qeth_l3_sys.c
@@ -208,11 +208,10 @@ static ssize_t qeth_l3_dev_sniffer_store(struct device *dev,
goto out;
}
- rc = strict_strtoul(buf, 16, &i);
- if (rc) {
- rc = -EINVAL;
+ rc = kstrtoul(buf, 16, &i);
+ if (rc)
goto out;
This hunk e.g. changes the behaviour of a user space interface. Before
your patch -ERANGE was mapped to -EINVAL. Now it is not true anymore.
This may or may not be a problem, however I'd like to keep the behaviour
as is in order to not risk any user space breakage.
So if you could resend a new version which just mechanically replaces
strict_strtoul() witch kstrtoul() that would be great.