Re: [PATCH RESEND] x86/boot: Replace simple_strtoull in parse_gb_huge_pages

From: Borislav Petkov

Date: Sun Mar 01 2026 - 05:45:29 EST


On Mon, Feb 02, 2026 at 06:32:20PM +0100, Thorsten Blum wrote:
> Replace simple_strtoull() with the recommended boot_kstrtoul() for
> parsing the 'hugepages=' boot parameter. Unlike simple_strtoull(), which
> returns an unsigned long long, boot_kstrtoul() converts the string
> directly to an unsigned long and avoids implicit casting.

"The respective kstrtol(), kstrtoll(), kstrtoul(), and kstrtoull() functions
tend to be the correct replacements, though note that those require the string
to be NUL or newline terminated."

Where are we making sure of that?

> Check the return value of boot_kstrtoul() and warn about invalid values.
>
> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
> ---
> arch/x86/boot/compressed/kaslr.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c
> index 3b0948ad449f..e6c44a0d3640 100644
> --- a/arch/x86/boot/compressed/kaslr.c
> +++ b/arch/x86/boot/compressed/kaslr.c
> @@ -219,7 +219,8 @@ static void parse_gb_huge_pages(char *param, char *val)
>
> if (!strcmp(param, "hugepages") && gbpage_sz) {
> p = val;
> - max_gb_huge_pages = simple_strtoull(p, &p, 0);
> + if (boot_kstrtoul(p, 0, &max_gb_huge_pages))
> + warn("Failed to parse boot parameter hugepages\n");

Make that

warn("Failed to parse hugepages= boot parameter\n");

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette