|
@@ -37,16 +37,11 @@ static u32 inet_ehashfn(const struct net *net, const __be32 laddr,
|
|
|
}
|
|
|
|
|
|
|
|
|
-static unsigned int inet_sk_ehashfn(const struct sock *sk)
|
|
|
+u32 sk_ehashfn(const struct sock *sk)
|
|
|
{
|
|
|
- const struct inet_sock *inet = inet_sk(sk);
|
|
|
- const __be32 laddr = inet->inet_rcv_saddr;
|
|
|
- const __u16 lport = inet->inet_num;
|
|
|
- const __be32 faddr = inet->inet_daddr;
|
|
|
- const __be16 fport = inet->inet_dport;
|
|
|
- struct net *net = sock_net(sk);
|
|
|
-
|
|
|
- return inet_ehashfn(net, laddr, lport, faddr, fport);
|
|
|
+ return inet_ehashfn(sock_net(sk),
|
|
|
+ sk->sk_rcv_saddr, sk->sk_num,
|
|
|
+ sk->sk_daddr, sk->sk_dport);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -407,13 +402,13 @@ int __inet_hash_nolisten(struct sock *sk, struct inet_timewait_sock *tw)
|
|
|
{
|
|
|
struct inet_hashinfo *hashinfo = sk->sk_prot->h.hashinfo;
|
|
|
struct hlist_nulls_head *list;
|
|
|
- spinlock_t *lock;
|
|
|
struct inet_ehash_bucket *head;
|
|
|
+ spinlock_t *lock;
|
|
|
int twrefcnt = 0;
|
|
|
|
|
|
WARN_ON(!sk_unhashed(sk));
|
|
|
|
|
|
- sk->sk_hash = inet_sk_ehashfn(sk);
|
|
|
+ sk->sk_hash = sk_ehashfn(sk);
|
|
|
head = inet_ehash_bucket(hashinfo, sk->sk_hash);
|
|
|
list = &head->chain;
|
|
|
lock = inet_ehash_lockp(hashinfo, sk->sk_hash);
|