diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-03-22 19:56:51 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-03-22 19:56:51 -0400 |
commit | fc8717baa8f52dd8d1b90df9008300ef3ec794ed (patch) | |
tree | 149c5e1c8db5bcf2af47caeb732f900bc722875f /net/ipv6 | |
parent | 6ba5a3c52da00015e739469e3b00cd6d0d4c5c67 (diff) |
[RAW]: Add raw_hashinfo member on struct proto.
Sorry for the patch sequence confusion :| but I found that the similar
thing can be done for raw sockets easily too late.
Expand the proto.h union with the raw_hashinfo member and use it in
raw_prot and rawv6_prot. This allows to drop the protocol specific
versions of hash and unhash callbacks.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/raw.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index d6afa0216759..a9e4235157a2 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -65,17 +65,6 @@ static struct raw_hashinfo raw_v6_hashinfo = { | |||
65 | .lock = __RW_LOCK_UNLOCKED(raw_v6_hashinfo.lock), | 65 | .lock = __RW_LOCK_UNLOCKED(raw_v6_hashinfo.lock), |
66 | }; | 66 | }; |
67 | 67 | ||
68 | static void raw_v6_hash(struct sock *sk) | ||
69 | { | ||
70 | raw_hash_sk(sk, &raw_v6_hashinfo); | ||
71 | } | ||
72 | |||
73 | static void raw_v6_unhash(struct sock *sk) | ||
74 | { | ||
75 | raw_unhash_sk(sk, &raw_v6_hashinfo); | ||
76 | } | ||
77 | |||
78 | |||
79 | static struct sock *__raw_v6_lookup(struct net *net, struct sock *sk, | 68 | static struct sock *__raw_v6_lookup(struct net *net, struct sock *sk, |
80 | unsigned short num, struct in6_addr *loc_addr, | 69 | unsigned short num, struct in6_addr *loc_addr, |
81 | struct in6_addr *rmt_addr, int dif) | 70 | struct in6_addr *rmt_addr, int dif) |
@@ -1201,9 +1190,10 @@ struct proto rawv6_prot = { | |||
1201 | .recvmsg = rawv6_recvmsg, | 1190 | .recvmsg = rawv6_recvmsg, |
1202 | .bind = rawv6_bind, | 1191 | .bind = rawv6_bind, |
1203 | .backlog_rcv = rawv6_rcv_skb, | 1192 | .backlog_rcv = rawv6_rcv_skb, |
1204 | .hash = raw_v6_hash, | 1193 | .hash = raw_hash_sk, |
1205 | .unhash = raw_v6_unhash, | 1194 | .unhash = raw_unhash_sk, |
1206 | .obj_size = sizeof(struct raw6_sock), | 1195 | .obj_size = sizeof(struct raw6_sock), |
1196 | .h.raw_hash = &raw_v6_hashinfo, | ||
1207 | #ifdef CONFIG_COMPAT | 1197 | #ifdef CONFIG_COMPAT |
1208 | .compat_setsockopt = compat_rawv6_setsockopt, | 1198 | .compat_setsockopt = compat_rawv6_setsockopt, |
1209 | .compat_getsockopt = compat_rawv6_getsockopt, | 1199 | .compat_getsockopt = compat_rawv6_getsockopt, |