mctp: Add helper for address match checking
authorJeremy Kerr <jk@codeconstruct.com.au>
Wed, 9 Feb 2022 04:05:55 +0000 (12:05 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Feb 2022 12:00:11 +0000 (12:00 +0000)
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>
include/net/mctp.h
net/mctp/route.c

index 7e35ec79b909c8638fe6b69e9b9d257b848563fd..706d329dd8e8caa6e822d8d0aea6d4fdc9af1665 100644 (file)
@@ -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);
index 8d9f4ff3e285cdf38121f21ce1a1aade23d19491..654467a7aeae9e2300f363ea1e320205e19aaaa6 100644 (file)
@@ -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,9 +615,8 @@ 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) &&
-                      tmp->local_addr == saddr))
+               if (!(mctp_address_matches(tmp->peer_addr, daddr) &&
+                     tmp->local_addr == saddr))
                        continue;
 
                spin_lock(&tmp->lock);