Merge tag 'net-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev...
[linux-2.6-block.git] / arch / parisc / net / bpf_jit_core.c
index d6ee2fd455503795e918c6f7cdd8d197eaca0eee..979f45d4d1fbeae5a60d92345409d413d352e7e1 100644 (file)
@@ -167,7 +167,13 @@ skip_init_ctx:
        bpf_flush_icache(jit_data->header, ctx->insns + ctx->ninsns);
 
        if (!prog->is_func || extra_pass) {
-               bpf_jit_binary_lock_ro(jit_data->header);
+               if (bpf_jit_binary_lock_ro(jit_data->header)) {
+                       bpf_jit_binary_free(jit_data->header);
+                       prog->bpf_func = NULL;
+                       prog->jited = 0;
+                       prog->jited_len = 0;
+                       goto out_offset;
+               }
                prologue_len = ctx->epilogue_offset - ctx->body_len;
                for (i = 0; i < prog->len; i++)
                        ctx->offset[i] += prologue_len;