Re: [PATCH] namespace: Replace simple_strtoul with kstrtoul to parse boot params

From: Jan Kara
Date: Tue Dec 16 2025 - 03:44:25 EST


On Mon 15-12-25 15:17:14, Thorsten Blum wrote:
> On 15. Dec 2025, at 10:15, Jan Kara wrote:
> > On Sun 14-12-25 16:31:42, Thorsten Blum wrote:
> >> Replace simple_strtoul() with the recommended kstrtoul() for parsing the
> >> 'mhash_entries=' and 'mphash_entries=' boot parameters.
> >>
> >> Check the return value of kstrtoul() and reject invalid values. This
> >> adds error handling while preserving behavior for existing values, and
> >> removes use of the deprecated simple_strtoul() helper.
> >>
> >> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
> >
> > ...
> >
> >> @@ -49,20 +49,14 @@ static unsigned int mp_hash_shift __ro_after_init;
> >> static __initdata unsigned long mhash_entries;
> >> static int __init set_mhash_entries(char *str)
> >> {
> >> - if (!str)
> >> - return 0;
> >> - mhash_entries = simple_strtoul(str, &str, 0);
> >> - return 1;
> >> + return kstrtoul(str, 0, &mhash_entries) == 0;
> >> }
> >> __setup("mhash_entries=", set_mhash_entries);
> >
> > I'm not very experienced with the cmdline option parsing but AFAICT the
> > 'str' argument can be indeed NULL and kstrtoul() will not be happy with
> > that?
>
> I don't think 'str' can be NULL. If you don't pass a value, 'str' will
> be the empty string (just tested this).

Ah, ok. The NULL value can happen only for early parameters and for
arguments without '=' sign in the name. So I'm retracting my objection and
feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>


Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR