From: sashiko-bot@kernel.org
To: "Tarun Sahu" <tarunsahu@google.com>,
"Pasha Tatashin" <pasha.tatashin@soleen.com>,
"Mike Rapoport" <rppt@kernel.org>,
robin.murphy@arm.com, maz@kernel.org, will@kernel.org,
"David Matlack" <dmatlack@google.com>,
"Alexander Graf" <graf@amazon.com>,
seanjc@google.com, jgg@nvidia.com, loganodell@google.com,
arnd@arndb.de, dwmw2@infradead.org, baolu.lu@linux.intel.com,
"Bjorn Helgaas" <bhelgaas@google.com>,
oupton@kernel.org, alex@shazbot.org, gle.com@google.com,
pbonzini@redhat.com, "Andrew Morton" <akpm@linux-foundation.org>,
kevin.tian@intel.com, joro@8bytes.org
Cc: kvmarm@lists.linux.dev, linux-pci@vger.kernel.org,
"Pratyush Yadav" <pratyush@kernel.org>,
kexec@lists.infradead.org, kvm@vger.kernel.org,
skhawaja@google.com, sagis@google.com, linux-mm@kvack.org
Subject: Re: [PATCH v4 14/19] liveupdate: Add feature header to struct luo_flb_ser
Date: Wed, 11 Nov 2026 06:16:50 +0000 [thread overview]
Message-ID: <sashiko-outbox-208417@kernel.org> (raw)
In-Reply-To: <20261110050202.529473-15-tarunsahu@google.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] liveupdate: -EOPNOTSUPP collision in luo_flb_retrieve_one()
on validation
--
commit f2fc7f3d05b147a7eeaad5c4521b29383721337e
Author: Tarun Sahu <tarunsahu@google.com>
liveupdate: Add feature header to struct luo_flb_ser
This commit adds a struct kho_ser_hdr feature header to each serialized
struct luo_flb_ser entry and validates each entry header during retrieval
in luo_flb_retrieve_one().
> diff --git a/kernel/liveupdate/luo_flb.c b/kernel/liveupdate/luo_flb.c
> index a8dcdb8456fd2..d38c223741ff4 100644
> --- a/kernel/liveupdate/luo_flb.c
> +++ b/kernel/liveupdate/luo_flb.c
[ ... ]
> @@ -177,10 +178,18 @@ static int luo_flb_retrieve_one(struct liveupdate_flb *flb)
> if (!fh->active)
> return -ENODATA;
>
> - for (int i = 0; i < fh->header_ser->count; i++) {
> - if (!strcmp(fh->ser[i].name, flb->compatible)) {
> - private->incoming.data = fh->ser[i].data;
> - refcount_set(&private->incoming.count, fh->ser[i].count);
> + for (u64 i = 0; i < fh->header_ser->count;
> + i++, fhdr = (void *)fhdr + fhdr->size) {
> + struct luo_flb_ser *ser;
> +
> + err = kho_ser_validate(fhdr, luo_flb_ser);
> + if (err)
> + return err;
> +
> + ser = kho_ser_payload(fhdr, luo_flb_ser);
> + if (!strcmp(ser->name, flb->compatible)) {
> + private->incoming.data = ser->data;
> + refcount_set(&private->incoming.count, ser->count);
> found = true;
> break;
> }
[Severity: Medium]
Does returning -EOPNOTSUPP from kho_ser_validate() collide with the
-EOPNOTSUPP return value that liveupdate_flb_get_incoming() uses to
indicate that Live Update is disabled?
When an incoming struct luo_flb_ser entry has an unsupported required
feature bit set, kho_ser_validate() returns -EOPNOTSUPP, which
liveupdate_flb_get_incoming() propagates to callers:
drivers/pci/liveupdate.c:pci_liveupdate_flb_get_incoming() {
...
ret = liveupdate_flb_get_incoming(&pci_liveupdate_flb, (void **)&incoming);
/* Live Update is not enabled. */
if (ret == -EOPNOTSUPP)
return NULL;
...
}
Instead of panicking on incompatible incoming state, the PCI subsystem
treats Live Update as disabled and proceeds with normal enumeration over
preserved devices.
Also, kho_ser_validate() runs on every entry before checking ser->name, so
an unsupported required feature on an earlier entry fails lookups for later
compatible FLBs, and returning before refcount_set(&private->incoming.count,
ser->count) leaves private->incoming.count at 0, which underflows in
liveupdate_flb_put_incoming() during luo_file_finish(). Validating all
luo_flb_ser entries up front in luo_flb_setup_incoming() (or translating
the validation error code) would avoid both issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261110050202.529473-1-tarunsahu@google.com?part=14
next prev parent reply other threads:[~2026-11-11 6:16 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-10 5:01 [PATCH v4 00/19] kho, liveupdate: Add feature header for fine-grained ABI compatibility Tarun Sahu
2026-11-10 5:01 ` [PATCH v4 01/19] liveupdate, kho: Remove __packed from KHO, LUO and memfd ABI structures Tarun Sahu
2026-11-10 12:56 ` Pasha Tatashin
2026-11-10 17:28 ` tarunsahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 02/19] kho: block: Record the entry size in the block header Tarun Sahu
2026-11-10 13:10 ` Pasha Tatashin
2026-11-11 5:45 ` tarunsahu
2026-11-10 17:03 ` David Matlack
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 03/19] kho, memfd_luo: Reference struct kho_vmalloc via serialized pointer Tarun Sahu
2026-11-10 14:23 ` Pasha Tatashin
2026-11-11 6:20 ` tarunsahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 04/19] liveupdate: Reference struct luo_file_set_ser " Tarun Sahu
2026-11-10 14:47 ` Pasha Tatashin
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 05/19] kho: Add feature header for fine-grained ABI compatibility Tarun Sahu
2026-11-10 14:47 ` Pasha Tatashin
2026-11-10 18:13 ` tarunsahu
2026-11-10 15:12 ` Pasha Tatashin
2026-11-10 18:25 ` tarunsahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 06/19] kho: kexec_metadata: Add the feature header Tarun Sahu
2026-11-10 15:08 ` Pasha Tatashin
2026-11-11 6:33 ` tarunsahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 07/19] kho: vmalloc: " Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 08/19] kho: block: Add the feature header to blocks Tarun Sahu
2026-11-10 17:07 ` David Matlack
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 09/19] liveupdate: Add feature header to struct luo_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 10/19] liveupdate: Add feature header to struct luo_session_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 11/19] liveupdate: Add feature header to struct luo_file_set_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 12/19] liveupdate: Add feature header to struct luo_file_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 13/19] liveupdate: Add feature header to struct luo_flb_header_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 14/19] liveupdate: Add feature header to struct luo_flb_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot [this message]
2026-11-10 5:01 ` [PATCH v4 15/19] PCI: liveupdate: Add feature header to struct pci_ser Tarun Sahu
2026-11-10 16:39 ` David Matlack
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:01 ` [PATCH v4 16/19] PCI: liveupdate: Add feature header to struct pci_dev_ser Tarun Sahu
2026-11-10 16:23 ` David Matlack
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:02 ` [PATCH v4 17/19] mm: memfd_luo: Add feature header to struct memfd_luo_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:02 ` [PATCH v4 18/19] mm: memfd_luo: Add feature header to struct memfd_luo_folio_ser Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 5:02 ` [PATCH v4 19/19] kho: Add KUnit test for the feature header helpers Tarun Sahu
2026-11-11 6:16 ` sashiko-bot
2026-11-10 12:48 ` [PATCH v4 00/19] kho, liveupdate: Add feature header for fine-grained ABI compatibility Pasha Tatashin
2026-11-11 5:36 ` tarunsahu
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=sashiko-outbox-208417@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alex@shazbot.org \
--cc=arnd@arndb.de \
--cc=baolu.lu@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=dmatlack@google.com \
--cc=dwmw2@infradead.org \
--cc=gle.com@google.com \
--cc=graf@amazon.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kexec@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-mm@kvack.org \
--cc=linux-pci@vger.kernel.org \
--cc=loganodell@google.com \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=pasha.tatashin@soleen.com \
--cc=pbonzini@redhat.com \
--cc=pratyush@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rppt@kernel.org \
--cc=sagis@google.com \
--cc=sashiko-reviews@lists.linux.dev \
--cc=seanjc@google.com \
--cc=skhawaja@google.com \
--cc=tarunsahu@google.com \
--cc=will@kernel.org \
/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.