The error handling procedures required when rss_bpf__open() and
rss_bpf__load(rss_bpf_ctx) are different so it's better to implement
them separately.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
ebpf/ebpf_rss.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/ebpf/ebpf_rss.c b/ebpf/ebpf_rss.c
index fe3184fed9..56c518c604 100644
--- a/ebpf/ebpf_rss.c
+++ b/ebpf/ebpf_rss.c
@@ -46,12 +46,13 @@ bool ebpf_rss_load(struct EBPFRSSContext *ctx)
rss_bpf_ctx = rss_bpf__open();
if (rss_bpf_ctx == NULL) {
trace_ebpf_error("eBPF RSS", "can not open eBPF RSS object");
- goto error;
+ return false;
}
if (rss_bpf__load(rss_bpf_ctx)) {
trace_ebpf_error("eBPF RSS", "can not load RSS program");
- goto error;
+ rss_bpf__destroy(rss_bpf_ctx);
+ return false;
}
ctx->obj = rss_bpf_ctx;
@@ -65,11 +66,6 @@ bool ebpf_rss_load(struct EBPFRSSContext *ctx)
rss_bpf_ctx->maps.tap_rss_map_toeplitz_key);
return true;
-error:
- rss_bpf__destroy(rss_bpf_ctx);
- ctx->obj = NULL;
-
- return false;
}
static void ebpf_rss_set_config(struct EBPFRSSContext *ctx,
--
2.42.0