Re: [PATCH RESEND] x86/boot: Replace simple_strtoull in parse_gb_huge_pages
From: David Laight
Date: Sun Mar 01 2026 - 13:30:34 EST
On Sun, 1 Mar 2026 11:44:54 +0100
Borislav Petkov <bp@xxxxxxxxx> wrote:
> 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");
>
I'd suggest including the 'val' that failed to parse.
David