From: Jon Maloy <jma...@redhat.com>

We reduce the signature of this function according to the same
principle as the preceding commits.

Signed-off-by: Jon Maloy <jma...@redhat.com>
---
 net/tipc/name_table.c | 10 +++++-----
 net/tipc/name_table.h |  5 ++---
 net/tipc/socket.c     | 22 +++++++++++-----------
 3 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c
index ed68db36bab9..ea4356dfb47d 100644
--- a/net/tipc/name_table.c
+++ b/net/tipc/name_table.c
@@ -671,21 +671,21 @@ bool tipc_nametbl_lookup_group(struct net *net, u32 type, 
u32 instance,
  * Used on nodes which have received a multicast/broadcast message
  * Returns a list of local sockets
  */
-void tipc_nametbl_lookup_mcast_sockets(struct net *net, u32 type, u32 lower,
-                                      u32 upper, u32 scope, bool exact,
-                                      struct list_head *dports)
+void tipc_nametbl_lookup_mcast_sockets(struct net *net, struct tipc_uaddr *ua,
+                                      bool exact, struct list_head *dports)
 {
        struct service_range *sr;
        struct tipc_service *sc;
        struct publication *p;
+       u32 scope = ua->scope;
 
        rcu_read_lock();
-       sc = tipc_service_find(net, type);
+       sc = tipc_service_find(net, ua->sr.type);
        if (!sc)
                goto exit;
 
        spin_lock_bh(&sc->lock);
-       service_range_foreach_match(sr, sc, lower, upper) {
+       service_range_foreach_match(sr, sc, ua->sr.lower, ua->sr.upper) {
                list_for_each_entry(p, &sr->local_publ, local_publ) {
                        if (p->scope == scope || (!exact && p->scope < scope))
                                tipc_dest_push(dports, 0, p->sk.ref);
diff --git a/net/tipc/name_table.h b/net/tipc/name_table.h
index f5e37f90a2ba..368a76f73892 100644
--- a/net/tipc/name_table.h
+++ b/net/tipc/name_table.h
@@ -113,9 +113,8 @@ struct name_table {
 int tipc_nl_name_table_dump(struct sk_buff *skb, struct netlink_callback *cb);
 bool tipc_nametbl_lookup_anycast(struct net *net, struct tipc_uaddr *ua,
                                 struct tipc_socket_addr *sk);
-void tipc_nametbl_lookup_mcast_sockets(struct net *net, u32 type, u32 lower,
-                                      u32 upper, u32 scope, bool exact,
-                                  struct list_head *dports);
+void tipc_nametbl_lookup_mcast_sockets(struct net *net, struct tipc_uaddr *ua,
+                                      bool exact, struct list_head *dports);
 void tipc_nametbl_lookup_mcast_nodes(struct net *net, u32 type, u32 lower,
                                     u32 upper, struct tipc_nlist *nodes);
 bool tipc_nametbl_lookup_group(struct net *net, u32 type, u32 instance,
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 913b1a7be25b..68d457c41c89 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -1205,17 +1205,18 @@ void tipc_sk_mcast_rcv(struct net *net, struct 
sk_buff_head *arrvq,
                       struct sk_buff_head *inputq)
 {
        u32 self = tipc_own_addr(net);
-       u32 type, lower, upper, scope;
        struct sk_buff *skb, *_skb;
        u32 portid, onode;
        struct sk_buff_head tmpq;
        struct list_head dports;
        struct tipc_msg *hdr;
+       struct tipc_uaddr ua;
        int user, mtyp, hlen;
        bool exact;
 
        __skb_queue_head_init(&tmpq);
        INIT_LIST_HEAD(&dports);
+       ua.addrtype = TIPC_SERVICE_RANGE;
 
        skb = tipc_skb_peek(arrvq, &inputq->lock);
        for (; skb; skb = tipc_skb_peek(arrvq, &inputq->lock)) {
@@ -1224,7 +1225,7 @@ void tipc_sk_mcast_rcv(struct net *net, struct 
sk_buff_head *arrvq,
                mtyp = msg_type(hdr);
                hlen = skb_headroom(skb) + msg_hdr_sz(hdr);
                onode = msg_orignode(hdr);
-               type = msg_nametype(hdr);
+               ua.sr.type = msg_nametype(hdr);
 
                if (mtyp == TIPC_GRP_UCAST_MSG || user == GROUP_PROTOCOL) {
                        spin_lock_bh(&inputq->lock);
@@ -1239,24 +1240,23 @@ void tipc_sk_mcast_rcv(struct net *net, struct 
sk_buff_head *arrvq,
 
                /* Group messages require exact scope match */
                if (msg_in_group(hdr)) {
-                       lower = 0;
-                       upper = ~0;
-                       scope = msg_lookup_scope(hdr);
+                       ua.sr.lower = 0;
+                       ua.sr.upper = ~0;
+                       ua.scope = msg_lookup_scope(hdr);
                        exact = true;
                } else {
                        /* TIPC_NODE_SCOPE means "any scope" in this context */
                        if (onode == self)
-                               scope = TIPC_NODE_SCOPE;
+                               ua.scope = TIPC_NODE_SCOPE;
                        else
-                               scope = TIPC_CLUSTER_SCOPE;
+                               ua.scope = TIPC_CLUSTER_SCOPE;
                        exact = false;
-                       lower = msg_namelower(hdr);
-                       upper = msg_nameupper(hdr);
+                       ua.sr.lower = msg_namelower(hdr);
+                       ua.sr.upper = msg_nameupper(hdr);
                }
 
                /* Create destination port list: */
-               tipc_nametbl_lookup_mcast_sockets(net, type, lower, upper,
-                                                 scope, exact, &dports);
+               tipc_nametbl_lookup_mcast_sockets(net, &ua, exact, &dports);
 
                /* Clone message per destination */
                while (tipc_dest_pop(&dports, NULL, &portid)) {
-- 
2.28.0



_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to