mctp: Add helper for address match checking
Currently, we have a couple of paths that check that an EID matches, or the match value is MCTP_ADDR_ANY. Rather than open coding this, add a little helper. Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c575521462
commit
8069b22d65
|
@ -45,6 +45,11 @@ static inline bool mctp_address_ok(mctp_eid_t eid)
|
||||||
return eid >= 8 && eid < 255;
|
return eid >= 8 && eid < 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool mctp_address_matches(mctp_eid_t match, mctp_eid_t eid)
|
||||||
|
{
|
||||||
|
return match == eid || match == MCTP_ADDR_ANY;
|
||||||
|
}
|
||||||
|
|
||||||
static inline struct mctp_hdr *mctp_hdr(struct sk_buff *skb)
|
static inline struct mctp_hdr *mctp_hdr(struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
return (struct mctp_hdr *)skb_network_header(skb);
|
return (struct mctp_hdr *)skb_network_header(skb);
|
||||||
|
|
|
@ -64,8 +64,7 @@ static struct mctp_sock *mctp_lookup_bind(struct net *net, struct sk_buff *skb)
|
||||||
if (msk->bind_type != type)
|
if (msk->bind_type != type)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (msk->bind_addr != MCTP_ADDR_ANY &&
|
if (!mctp_address_matches(msk->bind_addr, mh->dest))
|
||||||
msk->bind_addr != mh->dest)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
return msk;
|
return msk;
|
||||||
|
@ -616,9 +615,8 @@ static struct mctp_sk_key *mctp_alloc_local_tag(struct mctp_sock *msk,
|
||||||
if (tmp->tag & MCTP_HDR_FLAG_TO)
|
if (tmp->tag & MCTP_HDR_FLAG_TO)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!((tmp->peer_addr == daddr ||
|
if (!(mctp_address_matches(tmp->peer_addr, daddr) &&
|
||||||
tmp->peer_addr == MCTP_ADDR_ANY) &&
|
tmp->local_addr == saddr))
|
||||||
tmp->local_addr == saddr))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
spin_lock(&tmp->lock);
|
spin_lock(&tmp->lock);
|
||||||
|
|
Loading…
Reference in New Issue