Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 323173
b: refs/heads/master
c: 1b05c4b
h: refs/heads/master
i:
  323171: c7a04b3
v: v3
  • Loading branch information
Eric Dumazet authored and David S. Miller committed Sep 25, 2012
1 parent 72d4370 commit a76fcc7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 41e268565a1f597b3d8f37d8075e6be7e40fd8f9
refs/heads/master: 1b05c4b50edbddbdde715c4a7350629819f6655e
21 changes: 10 additions & 11 deletions trunk/net/ipv6/raw.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,21 +107,20 @@ static struct sock *__raw_v6_lookup(struct net *net, struct sock *sk,
* 0 - deliver
* 1 - block
*/
static __inline__ int icmpv6_filter(struct sock *sk, struct sk_buff *skb)
static int icmpv6_filter(const struct sock *sk, const struct sk_buff *skb)
{
struct icmp6hdr *icmph;
struct raw6_sock *rp = raw6_sk(sk);

if (pskb_may_pull(skb, sizeof(struct icmp6hdr))) {
__u32 *data = &rp->filter.data[0];
int bit_nr;
struct icmp6hdr *_hdr;
const struct icmp6hdr *hdr;

icmph = (struct icmp6hdr *) skb->data;
bit_nr = icmph->icmp6_type;
hdr = skb_header_pointer(skb, skb_transport_offset(skb),
sizeof(_hdr), &_hdr);
if (hdr) {
const __u32 *data = &raw6_sk(sk)->filter.data[0];
unsigned int type = hdr->icmp6_type;

return (data[bit_nr >> 5] & (1 << (bit_nr & 31))) != 0;
return (data[type >> 5] & (1U << (type & 31))) != 0;
}
return 0;
return 1;
}

#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
Expand Down

0 comments on commit a76fcc7

Please sign in to comment.