Subject: Re: linux-next: manual merge of the akpm tree with the net-next tree

From: Daniel Borkmann <[email-masked]>
Date: Wed, 22 May 2013 11:20:51 +0200

On 05/22/2013 01:54 AM, Stephen Rothwell wrote:
> Hi Daniel,
>
> On Tue, 21 May 2013 09:44:13 +0200 Daniel Borkmann <[email-masked]> wrote:
>>
>> Also seccomp_jit_free() needs a change otherwise the kernel won't build
>> with CONFIG_SECCOMP_FILTER_JIT enabled since the work_struct is initialized
>> with the bpf_jit_free_worker() callback, which is no longer existent.
>>
>> Do you want me to send you a patch?
>
> Yes, please.

In case this is still needed, patch attached. That should fix it.
>>From 72d68685f31b84f64826740cf3d33ba6d8d28ffc Mon Sep 17 00:00:00 2001
Message-Id: <[email-masked]>
In-Reply-To: <[email-masked]>
References: <[email-masked]>
From: Daniel Borkmann <[email-masked]>
Date: Wed, 22 May 2013 11:12:31 +0200
Subject: [PATCH] arm: bpf_jit: fixup build error in seccomp_jit_free

bpf_jit_free_worker() no longer exist, so get seccomp_jit_free()
in line with bpf_jit_free().

Signed-off-by: Daniel Borkmann <[email-masked]>
---
 arch/arm/net/bpf_jit_32.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index 62aca35..3fe001d 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -969,18 +969,9 @@ void seccomp_jit_compile(struct seccomp_filter *fp)
 
 void seccomp_jit_free(struct seccomp_filter *fp)
 {
-	struct work_struct *work;
 	void *bpf_func = seccomp_filter_get_bpf_func(fp);
 
-	if (bpf_func != sk_run_filter) {
-		/*
-		 * seccomp_jit_free() can be called from softirq; module_free()
-		 * requires process context.
-		 */
-		work = (struct work_struct *)bpf_func;
-
-		INIT_WORK(work, bpf_jit_free_worker);
-		schedule_work(work);
-	}
+	if (bpf_func != sk_run_filter)
+		module_free(NULL, bpf_func);
 }
 #endif
-- 
1.7.11.7