mptcp: drop lookup_by_id in lookup_addr
authorGeliang Tang <tanggeliang@kylinos.cn>
Tue, 5 Mar 2024 11:04:33 +0000 (12:04 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 Mar 2024 04:24:10 +0000 (20:24 -0800)
When the lookup_by_id parameter of __lookup_addr() is true, it's the same
as __lookup_addr_by_id(), it can be replaced by __lookup_addr_by_id()
directly. So drop this parameter, let __lookup_addr() only looks up address
on the local address list by comparing addresses in it, not address ids.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240305-upstream-net-next-20240304-mptcp-misc-cleanup-v1-4-c436ba5e569b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/pm_netlink.c

index 354083b8386f0ccab1dffb2b5714729673002793..5c17d39146ea23d8a82121c66f23c5adbbe9785f 100644 (file)
@@ -499,15 +499,12 @@ __lookup_addr_by_id(struct pm_nl_pernet *pernet, unsigned int id)
 }
 
 static struct mptcp_pm_addr_entry *
-__lookup_addr(struct pm_nl_pernet *pernet, const struct mptcp_addr_info *info,
-             bool lookup_by_id)
+__lookup_addr(struct pm_nl_pernet *pernet, const struct mptcp_addr_info *info)
 {
        struct mptcp_pm_addr_entry *entry;
 
        list_for_each_entry(entry, &pernet->local_addr_list, list) {
-               if ((!lookup_by_id &&
-                    mptcp_addresses_equal(&entry->addr, info, entry->addr.port)) ||
-                   (lookup_by_id && entry->addr.id == info->id))
+               if (mptcp_addresses_equal(&entry->addr, info, entry->addr.port))
                        return entry;
        }
        return NULL;
@@ -537,7 +534,7 @@ static void mptcp_pm_create_subflow_or_signal_addr(struct mptcp_sock *msk)
 
                mptcp_local_address((struct sock_common *)msk->first, &mpc_addr);
                rcu_read_lock();
-               entry = __lookup_addr(pernet, &mpc_addr, false);
+               entry = __lookup_addr(pernet, &mpc_addr);
                if (entry) {
                        __clear_bit(entry->addr.id, msk->pm.id_avail_bitmap);
                        msk->mpc_endpoint_id = entry->addr.id;
@@ -1918,7 +1915,8 @@ int mptcp_pm_nl_set_flags(struct sk_buff *skb, struct genl_info *info)
                bkup = 1;
 
        spin_lock_bh(&pernet->lock);
-       entry = __lookup_addr(pernet, &addr.addr, lookup_by_id);
+       entry = lookup_by_id ? __lookup_addr_by_id(pernet, addr.addr.id) :
+                              __lookup_addr(pernet, &addr.addr);
        if (!entry) {
                spin_unlock_bh(&pernet->lock);
                GENL_SET_ERR_MSG(info, "address not found");