Re: [PATCH v2] acpi: Use kstrtoul() instead of strtoul()/simple_strtoul()

Guenter Roeck
2015-08-02T08:19:25Z

On 08/02/2015 12:16 AM, Pavel Machek wrote:
> On Mon 2015-07-27 17:32:22, Guenter Roeck wrote:
>> simple_strtoul() is deprecated; replace with kstrtoul() and kstrtouint().
>> Return an error if the value passed to the sysfs attribute is not
>> a number.
>>
>> Drop the definition of strtoul() since it is no longer needed.
>>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> v2: An additional use of strtoul() was introduced with commit 4fa4616e.
>> Replace it as well.
>>
>> drivers/acpi/acpica/evgpeinit.c | 5 +++--
>> drivers/acpi/sysfs.c | 8 ++++++--
>> include/acpi/platform/aclinux.h | 1 -
>> 3 files changed, 9 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/acpi/acpica/evgpeinit.c b/drivers/acpi/acpica/evgpeinit.c
>> index ea4c0d3fca2d..aa1e8c1f2d4a 100644
>> --- a/drivers/acpi/acpica/evgpeinit.c
>> +++ b/drivers/acpi/acpica/evgpeinit.c
>> @@ -326,6 +326,7 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,
>> u32 gpe_number;
>> char name[ACPI_NAME_SIZE + 1];
>> u8 type;
>> + int err;
>>
>> ACPI_FUNCTION_TRACE(ev_match_gpe_method);
>>
>> @@ -377,8 +378,8 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,
>>
>> /* 4) The last two characters of the name are the hex GPE Number */
>>
>> - gpe_number = strtoul(&name[2], NULL, 16);
>> - if (gpe_number == ACPI_UINT32_MAX) {
>> + er = kstrtouint(&name[2], 16, &gpe_number);
>> + if (err < 0 || gpe_number == ACPI_UINT32_MAX) {
>
> Are you sure you compile-tested this?
>

I was, but maybe not ;-). Since the patch was rejected it does not really matter.

Guenter