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.od...@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 3978333584..2de9e7851f 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 bool ebpf_rss_set_config(struct EBPFRSSContext *ctx, -- 2.42.1