diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-01-18 02:46:52 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-19 00:33:05 -0500 |
commit | 80f8f1027b99660897bdeaeae73002185d829906 (patch) | |
tree | b8aafe71974b2b7295f20eeb1fad6191fadd8551 /net/packet/af_packet.c | |
parent | d6ae3bae3d1bf7a8bf367e29f2cac0788dcd0db5 (diff) |
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/af_packet.c')
-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, | |||
523 | { | 523 | { |
524 | struct sk_filter *filter; | 524 | struct sk_filter *filter; |
525 | 525 | ||
526 | rcu_read_lock_bh(); | 526 | rcu_read_lock(); |
527 | filter = rcu_dereference_bh(sk->sk_filter); | 527 | filter = rcu_dereference(sk->sk_filter); |
528 | if (filter != NULL) | 528 | if (filter != NULL) |
529 | res = sk_run_filter(skb, filter->insns); | 529 | res = sk_run_filter(skb, filter->insns); |
530 | rcu_read_unlock_bh(); | 530 | rcu_read_unlock(); |
531 | 531 | ||
532 | return res; | 532 | return res; |
533 | } | 533 | } |