Hi Andrew, Today's linux-next merge of the akpm tree got a conflict in arch/arm/net/bpf_jit_32.c between commit aafc787e41fd ("arm: bpf_jit: can call module_free() from any context") from the net-next tree and commit "ARM: net: bpf_jit: make code generation less dependent on struct sk_filter" from the akpm tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc arch/arm/net/bpf_jit_32.c index f50d223,2dab3e6..0000000 --- a/arch/arm/net/bpf_jit_32.c +++ b/arch/arm/net/bpf_jit_32.c @@@ -926,8 -926,32 +925,21 @@@ out return; } + void bpf_jit_compile(struct sk_filter *fp) + { + struct jit_ctx ctx; + + memset(&ctx, 0, sizeof(ctx)); + ctx.prog_len = fp->len; + ctx.prog_insns = fp->insns; + + __bpf_jit_compile(&ctx); + if (ctx.target) + fp->bpf_func = (void *)ctx.target; + } + -static void bpf_jit_free_worker(struct work_struct *work) -{ - module_free(NULL, work); -} - void bpf_jit_free(struct sk_filter *fp) { - struct work_struct *work; - - if (fp->bpf_func != sk_run_filter) { - work = (struct work_struct *)fp->bpf_func; - - INIT_WORK(work, bpf_jit_free_worker); - schedule_work(work); - } + if (fp->bpf_func != sk_run_filter) + module_free(NULL, fp->bpf_func); }
Attachment:
pgp5aNrz2ZuCp.pgp
Description: PGP signature