aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/net/bpf_jit_comp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
index abce27ceb411..263c8453815e 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -1236,6 +1236,7 @@ skip_init_addrs:
1236 for (pass = 0; pass < 20 || image; pass++) { 1236 for (pass = 0; pass < 20 || image; pass++) {
1237 proglen = do_jit(prog, addrs, image, oldproglen, &ctx); 1237 proglen = do_jit(prog, addrs, image, oldproglen, &ctx);
1238 if (proglen <= 0) { 1238 if (proglen <= 0) {
1239out_image:
1239 image = NULL; 1240 image = NULL;
1240 if (header) 1241 if (header)
1241 bpf_jit_binary_free(header); 1242 bpf_jit_binary_free(header);
@@ -1246,8 +1247,7 @@ skip_init_addrs:
1246 if (proglen != oldproglen) { 1247 if (proglen != oldproglen) {
1247 pr_err("bpf_jit: proglen=%d != oldproglen=%d\n", 1248 pr_err("bpf_jit: proglen=%d != oldproglen=%d\n",
1248 proglen, oldproglen); 1249 proglen, oldproglen);
1249 prog = orig_prog; 1250 goto out_image;
1250 goto out_addrs;
1251 } 1251 }
1252 break; 1252 break;
1253 } 1253 }
@@ -1283,7 +1283,7 @@ skip_init_addrs:
1283 prog = orig_prog; 1283 prog = orig_prog;
1284 } 1284 }
1285 1285
1286 if (!prog->is_func || extra_pass) { 1286 if (!image || !prog->is_func || extra_pass) {
1287out_addrs: 1287out_addrs:
1288 kfree(addrs); 1288 kfree(addrs);
1289 kfree(jit_data); 1289 kfree(jit_data);