diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2008-01-09 02:41:28 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-09 02:41:28 -0500 |
commit | 9d3e44425e3498eb33f25d94392b4fd0d56a5176 (patch) | |
tree | 453e71e0dfae127df026c64e2b1a24aa4f629b3d | |
parent | 0f99be0d115a5716292c58dfdb20d2eddd0f3387 (diff) |
[SOCK]: Adds a rcu_dereference() in sk_filter
It seems commit fda9ef5d679b07c9d9097aaf6ef7f069d794a8f9 introduced a RCU
protection for sk_filter(), without a rcu_dereference()
Either we need a rcu_dereference(), either a comment should explain why we
dont need it. I vote for the former.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/sock.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index 67e35c7e230..6e1542da33a 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -944,7 +944,7 @@ static inline int sk_filter(struct sock *sk, struct sk_buff *skb) | |||
944 | return err; | 944 | return err; |
945 | 945 | ||
946 | rcu_read_lock_bh(); | 946 | rcu_read_lock_bh(); |
947 | filter = sk->sk_filter; | 947 | filter = rcu_dereference(sk->sk_filter); |
948 | if (filter) { | 948 | if (filter) { |
949 | unsigned int pkt_len = sk_run_filter(skb, filter->insns, | 949 | unsigned int pkt_len = sk_run_filter(skb, filter->insns, |
950 | filter->len); | 950 | filter->len); |