]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'filter-next'
authorDavid S. Miller <davem@davemloft.net>
Sat, 2 Aug 2014 22:04:10 +0000 (15:04 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 2 Aug 2014 22:04:10 +0000 (15:04 -0700)
commitc0f3ea0191f5e5ef674cb1414caa5c0aaf3b7a7e
treedcb1aba57530e6c9426a81758173ca146ffafcaf
parenta46b2d863f810dfe24223152c0dcfc8286832ded
parent5e6e3abd45a08b1aa5c486967b478fefd9c5deb2
Merge branch 'filter-next'

Alexei Starovoitov says:

====================
net: filter: split sk_filter into socket and bpf, cleanup names

The main goal of the series is to split 'struct sk_filter' into socket and
bpf parts and cleanup names in the following way:
- everything that deals with sockets keeps 'sk_*' prefix
- everything that is pure BPF is changed to 'bpf_*' prefix

split 'struct sk_filter' into
struct sk_filter {
atomic_t        refcnt;
struct rcu_head rcu;
struct bpf_prog *prog;
};
and
struct bpf_prog {
        u32                     jited:1,
                                len:31;
        struct sock_fprog_kern  *orig_prog;
        unsigned int            (*bpf_func)(const struct sk_buff *skb,
                                            const struct bpf_insn *filter);
        union {
                struct sock_filter      insns[0];
                struct bpf_insn         insnsi[0];
                struct work_struct      work;
        };
};
so that 'struct bpf_prog' can be used independent of sockets and cleans up
'unattached' bpf use cases:
isdn, ppp, team, seccomp, ptp, xt_bpf, cls_bpf, test_bpf
which don't need refcnt/rcu fields.

It's a follow up to the rcu cleanup started by Pablo in
commit e72b3a3866 ("net: filter: don't release unattached filter through call_rcu()")

Patch 1 - cleans up socket memory charging and makes it possible for functions
  sk(bpf)_migrate_filter(), sk(bpf)_prepare_filter() to be socket independent
Patches 2-4 - trivial renames
Patch 5 - sk_filter split and renames of related sk_*() functions
====================

Signed-off-by: David S. Miller <davem@davemloft.net>