[UDP]: Revert 2-pass hashing changes.
This reverts changesets:6aaf47fa48b7b5f487abde34ed91c4fc038410b4There are still some correctness issues recently discovered which do not have a known fix that doesn't involve doing a full hash table scan on port bind. So revert for now. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -52,28 +52,9 @@
|
||||
|
||||
DEFINE_SNMP_STAT(struct udp_mib, udp_stats_in6) __read_mostly;
|
||||
|
||||
static int ipv6_rcv_saddr_any(const struct sock *sk)
|
||||
{
|
||||
struct ipv6_pinfo *np = inet6_sk(sk);
|
||||
|
||||
return ipv6_addr_any(&np->rcv_saddr);
|
||||
}
|
||||
|
||||
static unsigned int ipv6_hash_port_and_rcv_saddr(__u16 port,
|
||||
const struct sock *sk)
|
||||
{
|
||||
return port;
|
||||
}
|
||||
|
||||
const struct udp_get_port_ops udp_ipv6_ops = {
|
||||
.saddr_cmp = ipv6_rcv_saddr_equal,
|
||||
.saddr_any = ipv6_rcv_saddr_any,
|
||||
.hash_port_and_rcv_saddr = ipv6_hash_port_and_rcv_saddr,
|
||||
};
|
||||
|
||||
static inline int udp_v6_get_port(struct sock *sk, unsigned short snum)
|
||||
{
|
||||
return udp_get_port(sk, snum, &udp_ipv6_ops);
|
||||
return udp_get_port(sk, snum, ipv6_rcv_saddr_equal);
|
||||
}
|
||||
|
||||
static struct sock *__udp6_lib_lookup(struct in6_addr *saddr, __be16 sport,
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
#include <net/addrconf.h>
|
||||
#include <net/inet_common.h>
|
||||
|
||||
extern const struct udp_get_port_ops udp_ipv6_ops;
|
||||
|
||||
extern int __udp6_lib_rcv(struct sk_buff **, struct hlist_head [], int );
|
||||
extern void __udp6_lib_err(struct sk_buff *, struct inet6_skb_parm *,
|
||||
int , int , int , __be32 , struct hlist_head []);
|
||||
|
||||
@@ -37,7 +37,7 @@ static struct inet6_protocol udplitev6_protocol = {
|
||||
|
||||
static int udplite_v6_get_port(struct sock *sk, unsigned short snum)
|
||||
{
|
||||
return udplite_get_port(sk, snum, &udp_ipv6_ops);
|
||||
return udplite_get_port(sk, snum, ipv6_rcv_saddr_equal);
|
||||
}
|
||||
|
||||
struct proto udplitev6_prot = {
|
||||
|
||||
Reference in New Issue
Block a user