Hi Ran, Thanks for the fix.
On Fri, Feb 06 2026, [email protected] wrote: > From: Ran Xiaokai <[email protected]> > > kho_populate() returns without calling early_memunmap() on success > path, this will cause early ioremap virtual address space leak. > > Fixes: b50634c5e84a ("kho: cleanup error handling in kho_populate()") > Signed-off-by: Ran Xiaokai <[email protected]> > --- > > b50634c5e84a ("kho: cleanup error handling in kho_populate()") > has not landed in upstream, so > Cc: <[email protected]> is unnecessary? > > kernel/liveupdate/kexec_handover.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/kernel/liveupdate/kexec_handover.c > b/kernel/liveupdate/kexec_handover.c > index fb3a7b67676e..76b714db175d 100644 > --- a/kernel/liveupdate/kexec_handover.c > +++ b/kernel/liveupdate/kexec_handover.c > @@ -1463,6 +1463,7 @@ void __init kho_populate(phys_addr_t fdt_phys, u64 > fdt_len, > struct kho_scratch *scratch = NULL; > phys_addr_t mem_map_phys; > void *fdt = NULL; > + int populated = 0; Nit: Please use a bool and true/false. I think it reads much nicer. > int err; > > /* Validate the input FDT */ > @@ -1529,16 +1530,17 @@ void __init kho_populate(phys_addr_t fdt_phys, u64 > fdt_len, > kho_in.scratch_phys = scratch_phys; > kho_in.mem_map_phys = mem_map_phys; > kho_scratch_cnt = scratch_cnt; > - pr_info("found kexec handover data.\n"); > > - return; > + populated = 1; > + pr_info("found kexec handover data.\n"); > > err_unmap_scratch: > early_memunmap(scratch, scratch_len); > err_unmap_fdt: > early_memunmap(fdt, fdt_len); > err_report: Nit: now that this code can be reached by non-error paths, we should re-name the labels. I think dropping the "err_" prefix should be enough. With these fixed, Reviewed-by: Pratyush Yadav <[email protected]> > - pr_warn("disabling KHO revival\n"); > + if (!populated) > + pr_warn("disabling KHO revival\n"); > } > > /* Helper functions for kexec_file_load */ -- Regards, Pratyush Yadav
