Re: [PATCH v3 1/5] kho: reject zero bootmem scale

From: Mukesh Pilaniya

Date: Fri Nov 13 2026 - 12:17:29 EST




On 12/11/26 4:08 pm, Mike Rapoport (Microsoft) wrote:
> kho_bootmem=0% sets bootmem_scale to 0, and then the bootmem areas are
> sized using the explicit sizes that default to 0. KHO remains enabled,
> but there is no usable bootmem to load the next kernel.
>
> Reject zero scale the same way zero explicit sizes are rejected.
>
> Fixes: 3dc92c311498 ("kexec: add Kexec HandOver (KHO) generation helpers")
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>
> ---
> kernel/liveupdate/kexec_handover.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c
> index 6f1f55fe31819..b30ba686cb301 100644
> --- a/kernel/liveupdate/kexec_handover.c
> +++ b/kernel/liveupdate/kexec_handover.c
> @@ -703,16 +703,22 @@ static int __init kho_parse_bootmem_size(char *p)
> if (p[len - 1] == '%') {
> /* unsigned int max is 4,294,967,295, 10 chars */
> char s_scale[11] = {};
> + unsigned int scale;
> int ret = 0;
>
> if (len > ARRAY_SIZE(s_scale))
> return -EINVAL;
>
> memcpy(s_scale, p, len - 1);
> - ret = kstrtouint(s_scale, 10, &bootmem_scale);
> - if (!ret)
> - pr_notice("bootmem scale is %d%%\n", bootmem_scale);
> - return ret;
> + ret = kstrtouint(s_scale, 10, &scale);
> + if (ret)
> + return ret;
> + if (!scale)
> + return -EINVAL;
Reviewed-by: Mukesh Pilaniya <mpilaniy@xxxxxxxxxx>

> +
> + bootmem_scale = scale;
> + pr_notice("bootmem scale is %d%%\n", bootmem_scale);
> + return 0;
> }
>
> /* parse ll[KMG],mm[KMG],nn[KMG] */
>

--
Regards,
Mukesh Pilaniya