arch/s390/lib/spinlock.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
Replace simple_strtoul() with the recommended kstrtouint() for parsing
the 'spin_retry=' boot parameter. Unlike simple_strtoul(), which returns
an unsigned long, kstrtouint() converts the string directly to an
unsigned integer.
Check the return value of kstrtouint() and reject invalid values. This
adds error handling while preserving existing behavior for valid values,
and removes use of the deprecated simple_strtoul() helper.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
arch/s390/lib/spinlock.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c
index 10db1e56a811..b4ca53356b96 100644
--- a/arch/s390/lib/spinlock.c
+++ b/arch/s390/lib/spinlock.c
@@ -34,8 +34,7 @@ early_initcall(spin_retry_init);
*/
static int __init spin_retry_setup(char *str)
{
- spin_retry = simple_strtoul(str, &str, 0);
- return 1;
+ return kstrtouint(str, 0, &spin_retry) == 0;
}
__setup("spin_retry=", spin_retry_setup);
--
Thorsten Blum <thorsten.blum@linux.dev>
GPG: 1D60 735E 8AEF 3BE4 73B6 9D84 7336 78FD 8DFE EAD4
On Sat, Dec 13, 2025 at 01:32:44PM +0100, Thorsten Blum wrote:
> Replace simple_strtoul() with the recommended kstrtouint() for parsing
> the 'spin_retry=' boot parameter. Unlike simple_strtoul(), which returns
> an unsigned long, kstrtouint() converts the string directly to an
> unsigned integer.
>
> Check the return value of kstrtouint() and reject invalid values. This
> adds error handling while preserving existing behavior for valid values,
> and removes use of the deprecated simple_strtoul() helper.
>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
> arch/s390/lib/spinlock.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c
> index 10db1e56a811..b4ca53356b96 100644
> --- a/arch/s390/lib/spinlock.c
> +++ b/arch/s390/lib/spinlock.c
> @@ -34,8 +34,7 @@ early_initcall(spin_retry_init);
> */
> static int __init spin_retry_setup(char *str)
> {
> - spin_retry = simple_strtoul(str, &str, 0);
> - return 1;
> + return kstrtouint(str, 0, &spin_retry) == 0;
Why not to use kstrtouint() return value, like other parameters do?
> }
> __setup("spin_retry=", spin_retry_setup);
>
> --
> Thorsten Blum <thorsten.blum@linux.dev>
Thanks!
On 18. Dec 2025, at 08:59, Alexander Gordeev wrote:
> On Sat, Dec 13, 2025 at 01:32:44PM +0100, Thorsten Blum wrote:
>> Replace simple_strtoul() with the recommended kstrtouint() for parsing
>> the 'spin_retry=' boot parameter. Unlike simple_strtoul(), which returns
>> an unsigned long, kstrtouint() converts the string directly to an
>> unsigned integer.
>>
>> Check the return value of kstrtouint() and reject invalid values. This
>> adds error handling while preserving existing behavior for valid values,
>> and removes use of the deprecated simple_strtoul() helper.
>>
>> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
>> ---
>> arch/s390/lib/spinlock.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c
>> index 10db1e56a811..b4ca53356b96 100644
>> --- a/arch/s390/lib/spinlock.c
>> +++ b/arch/s390/lib/spinlock.c
>> @@ -34,8 +34,7 @@ early_initcall(spin_retry_init);
>> */
>> static int __init spin_retry_setup(char *str)
>> {
>> - spin_retry = simple_strtoul(str, &str, 0);
>> - return 1;
>> + return kstrtouint(str, 0, &spin_retry) == 0;
>
> Why not to use kstrtouint() return value, like other parameters do?
Returning kstrtouint() directly would be wrong because kstrtouint()
returns 0 on success, but spin_retry_setup() is expected to return 1 on
success and 0 if the parameter couldn't be handled.
Thanks,
Thorsten
© 2016 - 2026 Red Hat, Inc.