From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Subject: [PULL 16/18] ebpf: Fix stubs to set an error when they return failure
Date: Tue, 18 Nov 2025 20:00:51 +0100 [thread overview]
Message-ID: <20251118190053.39015-17-philmd@linaro.org> (raw)
In-Reply-To: <20251118190053.39015-1-philmd@linaro.org>
From: Markus Armbruster <armbru@redhat.com>
Stubs in ebpf_rss-stub.c return false for failure without setting an
Error. This is wrong. Callers may assume that the functions set an
error when they fail, and crash when they try to examine or report the
error. Callers may also check the error instead of the return value,
and misinterpret the failure as success.
ebpf_rss_load() and ebpf_rss_load() are reachable via
virtio_net_load_ebpf(). Fix them to set an error.
ebpf_rss_set_all() is unreachable: it can only be called when the
context has an eBPF program loaded, which is impossible with eBPF
support compiled out. Call abort() there to make that clear, and to
get rid of the latent bug.
Fixes: 00b69f1d867d (ebpf: add formal error reporting to all APIs)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20251118154718.3969982-2-armbru@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
| 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--git a/ebpf/ebpf_rss-stub.c b/ebpf/ebpf_rss-stub.c
index d0e7f99fb91..11729f3d8fb 100644
--- a/ebpf/ebpf_rss-stub.c
+++ b/ebpf/ebpf_rss-stub.c
@@ -25,6 +25,7 @@ bool ebpf_rss_is_loaded(struct EBPFRSSContext *ctx)
bool ebpf_rss_load(struct EBPFRSSContext *ctx, Error **errp)
{
+ error_setg(errp, "eBPF support is not compiled in");
return false;
}
@@ -32,6 +33,7 @@ bool ebpf_rss_load_fds(struct EBPFRSSContext *ctx, int program_fd,
int config_fd, int toeplitz_fd, int table_fd,
Error **errp)
{
+ error_setg(errp, "eBPF support is not compiled in");
return false;
}
@@ -39,7 +41,7 @@ bool ebpf_rss_set_all(struct EBPFRSSContext *ctx, struct EBPFRSSConfig *config,
uint16_t *indirections_table, uint8_t *toeplitz_key,
Error **errp)
{
- return false;
+ abort();
}
void ebpf_rss_unload(struct EBPFRSSContext *ctx)
--
2.51.0
next prev parent reply other threads:[~2025-11-18 19:03 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-18 19:00 [PULL 00/18] Misc HW patches for 2025-11-18 Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 01/18] MAINTAINERS: Update David Hildenbrand's email address Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 02/18] hw/intc/ioapic: Fix ACCEL_KERNEL_GSI_IRQFD_POSSIBLE typo Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 03/18] system/qtest.c: Allow for multiple CHR_EVENT_CLOSED events Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 04/18] hw/sd: Fix incorrect idle state reporting in R1 response for SPI mode Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 05/18] hw/sd: Fix ACMD41 state machine in " Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 06/18] hw/dma/zynq-devcfg: Fix register memory Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 07/18] hw/arm: Re-enable xenpvh machine in qemu-system-arm/aarch64 binaries Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 08/18] hw/sd/sdcard: Avoid confusing address calculation in rpmb_calc_hmac Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 09/18] qga/commands: Include proper Solaris header for getloadavg() Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 10/18] hw/southbridge/lasi: Correct LasiState parent Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 11/18] buildsys: Remove dead 'mips' entry in supported_cpus[] array Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 12/18] migration/rdma: Check ntohll() availability with meson Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 13/18] docs: Correct release of MIPS deprecations / removals Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 14/18] docs: Mention 32-bit PPC host as removed Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 15/18] scripts/checkpatch: Check DEVICE_NATIVE_ENDIAN Philippe Mathieu-Daudé
2025-11-18 19:00 ` Philippe Mathieu-Daudé [this message]
2025-11-18 19:00 ` [PULL 17/18] ebpf: Clean up useless error check in ebpf_rss_set_all() Philippe Mathieu-Daudé
2025-11-18 19:00 ` [PULL 18/18] ebpf: Make ebpf_rss_load() return value consistent with @errp Philippe Mathieu-Daudé
2025-11-19 9:45 ` [PULL 00/18] Misc HW patches for 2025-11-18 Richard Henderson
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=20251118190053.39015-17-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).