On Sat, Nov 01, 2025 at 10:23:20AM -0400, Pasha Tatashin wrote: > If there is an error half way through KHO memory preservation, we should > rollback and unpreserve everything that is partially preserved. > > Signed-off-by: Pasha Tatashin <[email protected]> > Suggested-by: Pratyush Yadav <[email protected]>
Reviewed-by: Mike Rapoport (Microsoft) <[email protected]> with a small nit below. > --- > mm/memblock.c | 73 ++++++++++++++++++++++++++++++++++++++++----------- > 1 file changed, 58 insertions(+), 15 deletions(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index e3bef9b35d63..f527ad1ca682 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -2445,29 +2445,60 @@ int reserve_mem_release_by_name(const char *name) ... > static int __init prepare_kho_fdt(void) > { > - int err = 0, i; > struct page *fdt_page; > void *fdt; > + int err; > > fdt_page = alloc_page(GFP_KERNEL); > - if (!fdt_page) > - return -ENOMEM; > + if (!fdt_page) { > + err = -ENOMEM; > + goto err_no_fdt_page; Please rename the label to describe what the goto does, say, err_report. I believe it can be a fixup on top after Andrew merges these. ... > +err_remove_subtree: > + kho_remove_subtree(fdt); > +err_unpreserve_fdt: > + kho_unpreserve_pages(fdt_page, 1); > +err_free_fdt: > + put_page(fdt_page); > +err_no_fdt_page: > + pr_err("failed to prepare memblock FDT for KHO: %d\n", err); > > return err; > } > -- > 2.51.1.930.gacf6e81ea2-goog > -- Sincerely yours, Mike.

