From dd664ff369b39b6d5786de702867482b46d4d9ff Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Tue, 18 Jan 2011 07:46:52 +0000 Subject: [PATCH] --- yaml --- r: 236549 b: refs/heads/master c: 80f8f1027b99660897bdeaeae73002185d829906 h: refs/heads/master i: 236547: 98d09db0a7d702b156baad9a84123c9d279dfe8c v: v3 --- [refs] | 2 +- trunk/include/net/sock.h | 2 +- trunk/net/core/filter.c | 6 +++--- trunk/net/packet/af_packet.c | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index b52fb9cb9bdc..7b32e6d68ccf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d6ae3bae3d1bf7a8bf367e29f2cac0788dcd0db5 +refs/heads/master: 80f8f1027b99660897bdeaeae73002185d829906 diff --git a/trunk/include/net/sock.h b/trunk/include/net/sock.h index d884d268c704..ba6465bf7c7a 100644 --- a/trunk/include/net/sock.h +++ b/trunk/include/net/sock.h @@ -1189,7 +1189,7 @@ extern void sk_filter_release_rcu(struct rcu_head *rcu); static inline void sk_filter_release(struct sk_filter *fp) { if (atomic_dec_and_test(&fp->refcnt)) - call_rcu_bh(&fp->rcu, sk_filter_release_rcu); + call_rcu(&fp->rcu, sk_filter_release_rcu); } static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) diff --git a/trunk/net/core/filter.c b/trunk/net/core/filter.c index afc58374ca96..232b1873bb28 100644 --- a/trunk/net/core/filter.c +++ b/trunk/net/core/filter.c @@ -142,14 +142,14 @@ int sk_filter(struct sock *sk, struct sk_buff *skb) if (err) return err; - rcu_read_lock_bh(); - filter = rcu_dereference_bh(sk->sk_filter); + rcu_read_lock(); + filter = rcu_dereference(sk->sk_filter); if (filter) { unsigned int pkt_len = sk_run_filter(skb, filter->insns); err = pkt_len ? pskb_trim(skb, pkt_len) : -EPERM; } - rcu_read_unlock_bh(); + rcu_read_unlock(); return err; } diff --git a/trunk/net/packet/af_packet.c b/trunk/net/packet/af_packet.c index 91cb1d71f018..c3fc7b70a879 100644 --- a/trunk/net/packet/af_packet.c +++ b/trunk/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; }