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

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
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -45,6 +45,11 @@ static inline bool mctp_address_ok(mctp_eid_t eid)
	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)
{
	return (struct mctp_hdr *)skb_network_header(skb);
+3 −5
Original line number Diff line number Diff line
@@ -64,8 +64,7 @@ static struct mctp_sock *mctp_lookup_bind(struct net *net, struct sk_buff *skb)
		if (msk->bind_type != type)
			continue;

		if (msk->bind_addr != MCTP_ADDR_ANY &&
		    msk->bind_addr != mh->dest)
		if (!mctp_address_matches(msk->bind_addr, mh->dest))
			continue;

		return msk;
@@ -616,8 +615,7 @@ static struct mctp_sk_key *mctp_alloc_local_tag(struct mctp_sock *msk,
		if (tmp->tag & MCTP_HDR_FLAG_TO)
			continue;

		if (!((tmp->peer_addr == daddr ||
		       tmp->peer_addr == MCTP_ADDR_ANY) &&
		if (!(mctp_address_matches(tmp->peer_addr, daddr) &&
		      tmp->local_addr == saddr))
			continue;