Re: [PATCH] initrd: Replace simple_strtol with kstrtoint to improve ramdisk_start_setup

From: Jan Kara

Date: Wed Sep 24 2025 - 09:35:18 EST


On Thu 18-09-25 18:24:47, Thorsten Blum wrote:
> Replace simple_strtol() with the recommended kstrtoint() for parsing the
> 'ramdisk_start=' boot parameter. Unlike simple_strtol(), which returns a
> a long, kstrtoint() converts the string directly to an integer and
> avoids implicit casting.
>
> Check the return value of kstrtoint() and reject invalid values. This
> adds error handling while preserving existing behavior for valid values,
> and removes use of the deprecated simple_strtol() helper.
>
> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> init/do_mounts_rd.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c
> index ac021ae6e6fa..79d5375ad712 100644
> --- a/init/do_mounts_rd.c
> +++ b/init/do_mounts_rd.c
> @@ -28,8 +28,7 @@ int __initdata rd_image_start; /* starting block # of image */
>
> static int __init ramdisk_start_setup(char *str)
> {
> - rd_image_start = simple_strtol(str,NULL,0);
> - return 1;
> + return kstrtoint(str, 0, &rd_image_start) == 0;
> }
> __setup("ramdisk_start=", ramdisk_start_setup);
>
> --
> 2.51.0
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR