[IPV4]: annotate inet_lookup() and friends
inet_lookup() annotated along with helper functions (__inet_lookup(), __inet_lookup_established(), inet_lookup_established(), inet_lookup_listener(), __inet_lookup_listener() and inet_ehashfn()) Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@ -272,12 +272,12 @@ static inline int inet_iif(const struct sk_buff *skb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
extern struct sock *__inet_lookup_listener(struct inet_hashinfo *hashinfo,
|
extern struct sock *__inet_lookup_listener(struct inet_hashinfo *hashinfo,
|
||||||
const u32 daddr,
|
const __be32 daddr,
|
||||||
const unsigned short hnum,
|
const unsigned short hnum,
|
||||||
const int dif);
|
const int dif);
|
||||||
|
|
||||||
static inline struct sock *inet_lookup_listener(struct inet_hashinfo *hashinfo,
|
static inline struct sock *inet_lookup_listener(struct inet_hashinfo *hashinfo,
|
||||||
u32 daddr, u16 dport, int dif)
|
__be32 daddr, __be16 dport, int dif)
|
||||||
{
|
{
|
||||||
return __inet_lookup_listener(hashinfo, daddr, ntohs(dport), dif);
|
return __inet_lookup_listener(hashinfo, daddr, ntohs(dport), dif);
|
||||||
}
|
}
|
||||||
@ -347,8 +347,8 @@ typedef __u64 __bitwise __addrpair;
|
|||||||
*/
|
*/
|
||||||
static inline struct sock *
|
static inline struct sock *
|
||||||
__inet_lookup_established(struct inet_hashinfo *hashinfo,
|
__inet_lookup_established(struct inet_hashinfo *hashinfo,
|
||||||
const u32 saddr, const u16 sport,
|
const __be32 saddr, const __be16 sport,
|
||||||
const u32 daddr, const u16 hnum,
|
const __be32 daddr, const u16 hnum,
|
||||||
const int dif)
|
const int dif)
|
||||||
{
|
{
|
||||||
INET_ADDR_COOKIE(acookie, saddr, daddr)
|
INET_ADDR_COOKIE(acookie, saddr, daddr)
|
||||||
@ -384,8 +384,8 @@ hit:
|
|||||||
|
|
||||||
static inline struct sock *
|
static inline struct sock *
|
||||||
inet_lookup_established(struct inet_hashinfo *hashinfo,
|
inet_lookup_established(struct inet_hashinfo *hashinfo,
|
||||||
const u32 saddr, const u16 sport,
|
const __be32 saddr, const __be16 sport,
|
||||||
const u32 daddr, const u16 dport,
|
const __be32 daddr, const __be16 dport,
|
||||||
const int dif)
|
const int dif)
|
||||||
{
|
{
|
||||||
return __inet_lookup_established(hashinfo, saddr, sport, daddr,
|
return __inet_lookup_established(hashinfo, saddr, sport, daddr,
|
||||||
@ -393,8 +393,8 @@ static inline struct sock *
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline struct sock *__inet_lookup(struct inet_hashinfo *hashinfo,
|
static inline struct sock *__inet_lookup(struct inet_hashinfo *hashinfo,
|
||||||
const u32 saddr, const u16 sport,
|
const __be32 saddr, const __be16 sport,
|
||||||
const u32 daddr, const u16 dport,
|
const __be32 daddr, const __be16 dport,
|
||||||
const int dif)
|
const int dif)
|
||||||
{
|
{
|
||||||
u16 hnum = ntohs(dport);
|
u16 hnum = ntohs(dport);
|
||||||
@ -404,8 +404,8 @@ static inline struct sock *__inet_lookup(struct inet_hashinfo *hashinfo,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline struct sock *inet_lookup(struct inet_hashinfo *hashinfo,
|
static inline struct sock *inet_lookup(struct inet_hashinfo *hashinfo,
|
||||||
const u32 saddr, const u16 sport,
|
const __be32 saddr, const __be16 sport,
|
||||||
const u32 daddr, const u16 dport,
|
const __be32 daddr, const __be16 dport,
|
||||||
const int dif)
|
const int dif)
|
||||||
{
|
{
|
||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
|
@ -167,10 +167,10 @@ static inline void inet_sk_copy_descendant(struct sock *sk_to,
|
|||||||
|
|
||||||
extern int inet_sk_rebuild_header(struct sock *sk);
|
extern int inet_sk_rebuild_header(struct sock *sk);
|
||||||
|
|
||||||
static inline unsigned int inet_ehashfn(const __u32 laddr, const __u16 lport,
|
static inline unsigned int inet_ehashfn(const __be32 laddr, const __u16 lport,
|
||||||
const __u32 faddr, const __u16 fport)
|
const __be32 faddr, const __be16 fport)
|
||||||
{
|
{
|
||||||
unsigned int h = (laddr ^ lport) ^ (faddr ^ fport);
|
unsigned int h = ((__force __u32)laddr ^ lport) ^ ((__force __u32)faddr ^ (__force __u32)fport);
|
||||||
h ^= h >> 16;
|
h ^= h >> 16;
|
||||||
h ^= h >> 8;
|
h ^= h >> 8;
|
||||||
return h;
|
return h;
|
||||||
@ -179,10 +179,10 @@ static inline unsigned int inet_ehashfn(const __u32 laddr, const __u16 lport,
|
|||||||
static inline int inet_sk_ehashfn(const struct sock *sk)
|
static inline int inet_sk_ehashfn(const struct sock *sk)
|
||||||
{
|
{
|
||||||
const struct inet_sock *inet = inet_sk(sk);
|
const struct inet_sock *inet = inet_sk(sk);
|
||||||
const __u32 laddr = inet->rcv_saddr;
|
const __be32 laddr = inet->rcv_saddr;
|
||||||
const __u16 lport = inet->num;
|
const __u16 lport = inet->num;
|
||||||
const __u32 faddr = inet->daddr;
|
const __be32 faddr = inet->daddr;
|
||||||
const __u16 fport = inet->dport;
|
const __be16 fport = inet->dport;
|
||||||
|
|
||||||
return inet_ehashfn(laddr, lport, faddr, fport);
|
return inet_ehashfn(laddr, lport, faddr, fport);
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ EXPORT_SYMBOL(inet_listen_wlock);
|
|||||||
* wildcarded during the search since they can never be otherwise.
|
* wildcarded during the search since they can never be otherwise.
|
||||||
*/
|
*/
|
||||||
static struct sock *inet_lookup_listener_slow(const struct hlist_head *head,
|
static struct sock *inet_lookup_listener_slow(const struct hlist_head *head,
|
||||||
const u32 daddr,
|
const __be32 daddr,
|
||||||
const unsigned short hnum,
|
const unsigned short hnum,
|
||||||
const int dif)
|
const int dif)
|
||||||
{
|
{
|
||||||
@ -137,7 +137,7 @@ static struct sock *inet_lookup_listener_slow(const struct hlist_head *head,
|
|||||||
const struct inet_sock *inet = inet_sk(sk);
|
const struct inet_sock *inet = inet_sk(sk);
|
||||||
|
|
||||||
if (inet->num == hnum && !ipv6_only_sock(sk)) {
|
if (inet->num == hnum && !ipv6_only_sock(sk)) {
|
||||||
const __u32 rcv_saddr = inet->rcv_saddr;
|
const __be32 rcv_saddr = inet->rcv_saddr;
|
||||||
int score = sk->sk_family == PF_INET ? 1 : 0;
|
int score = sk->sk_family == PF_INET ? 1 : 0;
|
||||||
|
|
||||||
if (rcv_saddr) {
|
if (rcv_saddr) {
|
||||||
@ -163,7 +163,7 @@ static struct sock *inet_lookup_listener_slow(const struct hlist_head *head,
|
|||||||
|
|
||||||
/* Optimize the common listener case. */
|
/* Optimize the common listener case. */
|
||||||
struct sock *__inet_lookup_listener(struct inet_hashinfo *hashinfo,
|
struct sock *__inet_lookup_listener(struct inet_hashinfo *hashinfo,
|
||||||
const u32 daddr, const unsigned short hnum,
|
const __be32 daddr, const unsigned short hnum,
|
||||||
const int dif)
|
const int dif)
|
||||||
{
|
{
|
||||||
struct sock *sk = NULL;
|
struct sock *sk = NULL;
|
||||||
@ -197,8 +197,8 @@ static int __inet_check_established(struct inet_timewait_death_row *death_row,
|
|||||||
{
|
{
|
||||||
struct inet_hashinfo *hinfo = death_row->hashinfo;
|
struct inet_hashinfo *hinfo = death_row->hashinfo;
|
||||||
struct inet_sock *inet = inet_sk(sk);
|
struct inet_sock *inet = inet_sk(sk);
|
||||||
u32 daddr = inet->rcv_saddr;
|
__be32 daddr = inet->rcv_saddr;
|
||||||
u32 saddr = inet->daddr;
|
__be32 saddr = inet->daddr;
|
||||||
int dif = sk->sk_bound_dev_if;
|
int dif = sk->sk_bound_dev_if;
|
||||||
INET_ADDR_COOKIE(acookie, saddr, daddr)
|
INET_ADDR_COOKIE(acookie, saddr, daddr)
|
||||||
const __portpair ports = INET_COMBINED_PORTS(inet->dport, lport);
|
const __portpair ports = INET_COMBINED_PORTS(inet->dport, lport);
|
||||||
|
Reference in New Issue
Block a user