Commit 8069b22d authored by Jeremy Kerr's avatar Jeremy Kerr Committed by David S. Miller

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: default avatarJeremy Kerr <jk@codeconstruct.com.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c5755214
...@@ -45,6 +45,11 @@ static inline bool mctp_address_ok(mctp_eid_t eid) ...@@ -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) ...@@ -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, ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment