diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-01-18 07:46:52 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-18 21:33:05 -0800 |
commit | 80f8f1027b99660897bdeaeae73002185d829906 (patch) | |
tree | b8aafe71974b2b7295f20eeb1fad6191fadd8551 /net/packet | |
parent | d6ae3bae3d1bf7a8bf367e29f2cac0788dcd0db5 (diff) | |
download | linux-stable-80f8f1027b99660897bdeaeae73002185d829906.tar.gz linux-stable-80f8f1027b99660897bdeaeae73002185d829906.tar.bz2 linux-stable-80f8f1027b99660897bdeaeae73002185d829906.zip |
net: filter: dont block softirqs in sk_run_filter()
Packet filter (BPF) doesnt need to disable softirqs, being fully
re-entrant and lock-less.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet')
-rw-r--r-- | net/packet/af_packet.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 91cb1d71f018..c3fc7b70a879 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -523,11 +523,11 @@ static inline unsigned int run_filter(const struct sk_buff *skb, { struct sk_filter *filter; - rcu_read_lock_bh(); - filter = rcu_dereference_bh(sk->sk_filter); + rcu_read_lock(); + filter = rcu_dereference(sk->sk_filter); if (filter != NULL) res = sk_run_filter(skb, filter->insns); - rcu_read_unlock_bh(); + rcu_read_unlock(); return res; } |