From: Mike Rapoport <rppt@kernel.org>
To: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: akpm@linux-foundation.org, bhe@redhat.com, jasonmiu@google.com,
arnd@arndb.de, coxu@redhat.com, dave@vasilevsky.ca,
ebiggers@google.com, graf@amazon.com, kees@kernel.org,
linux-kernel@vger.kernel.org, kexec@lists.infradead.org,
linux-mm@kvack.org
Subject: Re: [PATCH v2 10/13] kho: Update FDT dynamically for subtree addition/removal
Date: Sun, 16 Nov 2025 07:46:56 +0200 [thread overview]
Message-ID: <aRllULpK1wxZyY23@kernel.org> (raw)
In-Reply-To: <CA+CK2bBnEKk_mQOCfDhnqbUCovLCKhFw-p54Q4_Sutk4oieOVA@mail.gmail.com>
On Sat, Nov 15, 2025 at 09:51:07AM -0500, Pasha Tatashin wrote:
> On Sat, Nov 15, 2025 at 4:40 AM Mike Rapoport <rppt@kernel.org> wrote:
> >
> > On Fri, Nov 14, 2025 at 01:59:59PM -0500, Pasha Tatashin wrote:
> > > - struct kho_sub_fdt *sub_fdt;
> > > + phys_addr_t phys = virt_to_phys(fdt);
> > > + void *root_fdt = kho_out.fdt;
> > > + int err = -ENOMEM;
> > > + int off, fdt_err;
> > >
> > > - sub_fdt = kmalloc(sizeof(*sub_fdt), GFP_KERNEL);
> > > - if (!sub_fdt)
> > > - return -ENOMEM;
> > > + guard(mutex)(&kho_out.lock);
> > > +
> > > + fdt_err = fdt_open_into(root_fdt, root_fdt, PAGE_SIZE);
> > > + if (fdt_err < 0)
> > > + return err;
> > >
> > > - INIT_LIST_HEAD(&sub_fdt->l);
> > > - sub_fdt->name = name;
> > > - sub_fdt->fdt = fdt;
> > > + off = fdt_add_subnode(root_fdt, 0, name);
> >
> > Why not
> > fdt_err = fdt_add_subnode()
> >
> > as I asked in v1 review?
> >
>
> Oh, I missed that, there is a slight difference between the two:
> 'fdt_err' only contains FDT return value, i.e. error if negative. The
> 'off' on the other hand in the happy path contains subnode offset, and
> contains error only in the unhappy path. This is why I think it is a
> little cleaner to keep different name, however, if you still prefer
> re-using a single local variable for both, this is fix-up patch:
>
> diff --git a/kernel/liveupdate/kexec_handover.c
> b/kernel/liveupdate/kexec_handover.c
> index 224bdf5becb6..81f60ccb2dc7 100644
> --- a/kernel/liveupdate/kexec_handover.c
> +++ b/kernel/liveupdate/kexec_handover.c
> @@ -713,7 +713,7 @@ int kho_add_subtree(const char *name, void *fdt)
> phys_addr_t phys = virt_to_phys(fdt);
> void *root_fdt = kho_out.fdt;
> int err = -ENOMEM;
> - int off, fdt_err;
> + int fdt_err;
>
> guard(mutex)(&kho_out.lock);
>
> @@ -721,14 +721,14 @@ int kho_add_subtree(const char *name, void *fdt)
> if (fdt_err < 0)
> return err;
>
> - off = fdt_add_subnode(root_fdt, 0, name);
> - if (off < 0) {
> - if (off == -FDT_ERR_EXISTS)
> + fdt_err = fdt_add_subnode(root_fdt, 0, name);
> + if (fdt_err < 0) {
> + if (fdt_err == -FDT_ERR_EXISTS)
> err = -EEXIST;
> goto out_pack;
> }
>
> - err = fdt_setprop(root_fdt, off, PROP_SUB_FDT, &phys, sizeof(phys));
> + err = fdt_setprop(root_fdt, fdt_err, PROP_SUB_FDT, &phys, sizeof(phys));
I missed 'off' here, never mind
> if (err < 0)
> goto out_pack;
>
--
Sincerely yours,
Mike.
next prev parent reply other threads:[~2025-11-16 5:47 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-14 18:59 [PATCH v2 00/13] kho: simplify state machine and enable dynamic updates Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 01/13] kho: Fix misleading log message in kho_populate() Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 02/13] kho: Convert __kho_abort() to return void Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 03/13] kho: Introduce high-level memory allocation API Pasha Tatashin
2025-11-14 19:33 ` Pratyush Yadav
2025-11-16 6:49 ` Lance Yang
2025-11-16 14:57 ` Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 04/13] kho: Preserve FDT folio only once during initialization Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 05/13] kho: Verify deserialization status and fix FDT alignment access Pasha Tatashin
2025-11-14 19:33 ` Pratyush Yadav
2025-11-14 18:59 ` [PATCH v2 06/13] kho: Always expose output FDT in debugfs Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 07/13] kho: Simplify serialization and remove __kho_abort Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 08/13] kho: Remove global preserved_mem_map and store state in FDT Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 09/13] kho: Remove abort functionality and support state refresh Pasha Tatashin
2025-11-14 18:59 ` [PATCH v2 10/13] kho: Update FDT dynamically for subtree addition/removal Pasha Tatashin
2025-11-15 9:40 ` Mike Rapoport
2025-11-15 14:51 ` Pasha Tatashin
2025-11-16 5:46 ` Mike Rapoport [this message]
2025-11-14 19:00 ` [PATCH v2 11/13] kho: Allow kexec load before KHO finalization Pasha Tatashin
2025-12-18 21:56 ` Ricardo Neri
2025-12-19 0:26 ` Pasha Tatashin
2025-12-19 2:43 ` Ricardo Neri
2025-12-19 3:11 ` Pasha Tatashin
2025-11-14 19:00 ` [PATCH v2 12/13] kho: Allow memory preservation state updates after finalization Pasha Tatashin
2025-11-14 19:35 ` Pratyush Yadav
2025-11-14 19:00 ` [PATCH v2 13/13] kho: Add Kconfig option to enable KHO by default Pasha Tatashin
2025-11-14 19:35 ` Pratyush Yadav
2025-11-14 21:44 ` [PATCH v2 00/13] kho: simplify state machine and enable dynamic updates Andrew Morton
2025-11-14 22:00 ` Pasha Tatashin
2025-11-14 22:06 ` Pasha Tatashin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aRllULpK1wxZyY23@kernel.org \
--to=rppt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=bhe@redhat.com \
--cc=coxu@redhat.com \
--cc=dave@vasilevsky.ca \
--cc=ebiggers@google.com \
--cc=graf@amazon.com \
--cc=jasonmiu@google.com \
--cc=kees@kernel.org \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=pasha.tatashin@soleen.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.