summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-05-15 16:32:20 -0400
committerDavid S. Miller <davem@davemloft.net>2014-05-15 16:32:20 -0400
commit1f499d6a3b5e377312d607e6e9c055f4210ad0b7 (patch)
tree67daf2164c9c5b633160489d637b8ecc84b62881 /net
parent9509b1c150ebbffce0a0480ff21f43e3cd3b2c32 (diff)
parent8f577cadf7181243d336be9aba40c1bcc02c4c54 (diff)
Merge branch 'filter-next'
Alexei Starovoitov says: ==================== internal BPF jit for x64 and JITed seccomp Internal BPF JIT compiler for x86_64 replaces classic BPF JIT. Use it in seccomp and in tracing filters (sent as separate patch) ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/core/filter.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/net/core/filter.c b/net/core/filter.c
index c442a0d7d0f7..32c5b44c537e 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -1524,6 +1524,10 @@ out_err:
return ERR_PTR(err);
}
+void __weak bpf_int_jit_compile(struct sk_filter *prog)
+{
+}
+
static struct sk_filter *__sk_prepare_filter(struct sk_filter *fp,
struct sock *sk)
{
@@ -1544,9 +1548,12 @@ static struct sk_filter *__sk_prepare_filter(struct sk_filter *fp,
/* JIT compiler couldn't process this filter, so do the
* internal BPF translation for the optimized interpreter.
*/
- if (!fp->jited)
+ if (!fp->jited) {
fp = __sk_migrate_filter(fp, sk);
+ /* Probe if internal BPF can be jit-ed */
+ bpf_int_jit_compile(fp);
+ }
return fp;
}