Skip to content

Commit ee28525

Browse files
Geliang Tangdavem330
authored andcommitted
mptcp: drop flags and ifindex arguments
This patch added a new helper mptcp_pm_get_flags_and_ifindex_by_id(), and used it in __mptcp_subflow_connect() to get the flags and ifindex values. Then the two arguments flags and ifindex of __mptcp_subflow_connect() can be dropped. Signed-off-by: Geliang Tang <[email protected]> Signed-off-by: Mat Martineau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 3349d36 commit ee28525

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

net/mptcp/pm_netlink.c

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -462,8 +462,7 @@ static void mptcp_pm_create_subflow_or_signal_addr(struct mptcp_sock *msk)
462462
check_work_pending(msk);
463463
remote_address((struct sock_common *)sk, &remote);
464464
spin_unlock_bh(&msk->pm.lock);
465-
__mptcp_subflow_connect(sk, &local->addr, &remote,
466-
local->flags, local->ifindex);
465+
__mptcp_subflow_connect(sk, &local->addr, &remote);
467466
spin_lock_bh(&msk->pm.lock);
468467
return;
469468
}
@@ -518,7 +517,7 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk)
518517
local.family = remote.family;
519518

520519
spin_unlock_bh(&msk->pm.lock);
521-
__mptcp_subflow_connect(sk, &local, &remote, 0, 0);
520+
__mptcp_subflow_connect(sk, &local, &remote);
522521
spin_lock_bh(&msk->pm.lock);
523522

524523
add_addr_echo:
@@ -1105,6 +1104,27 @@ __lookup_addr_by_id(struct pm_nl_pernet *pernet, unsigned int id)
11051104
return NULL;
11061105
}
11071106

1107+
int mptcp_pm_get_flags_and_ifindex_by_id(struct net *net, unsigned int id,
1108+
u8 *flags, int *ifindex)
1109+
{
1110+
struct mptcp_pm_addr_entry *entry;
1111+
1112+
*flags = 0;
1113+
*ifindex = 0;
1114+
1115+
if (id) {
1116+
rcu_read_lock();
1117+
entry = __lookup_addr_by_id(net_generic(net, pm_nl_pernet_id), id);
1118+
if (entry) {
1119+
*flags = entry->flags;
1120+
*ifindex = entry->ifindex;
1121+
}
1122+
rcu_read_unlock();
1123+
}
1124+
1125+
return 0;
1126+
}
1127+
11081128
static bool remove_anno_list_by_saddr(struct mptcp_sock *msk,
11091129
struct mptcp_addr_info *addr)
11101130
{

net/mptcp/protocol.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -577,8 +577,7 @@ struct socket *__mptcp_nmpc_socket(const struct mptcp_sock *msk);
577577

578578
/* called with sk socket lock held */
579579
int __mptcp_subflow_connect(struct sock *sk, const struct mptcp_addr_info *loc,
580-
const struct mptcp_addr_info *remote,
581-
u8 flags, int ifindex);
580+
const struct mptcp_addr_info *remote);
582581
int mptcp_subflow_create_socket(struct sock *sk, struct socket **new_sock);
583582
void mptcp_info2sockaddr(const struct mptcp_addr_info *info,
584583
struct sockaddr_storage *addr,
@@ -733,6 +732,8 @@ mptcp_pm_del_add_timer(struct mptcp_sock *msk,
733732
struct mptcp_pm_add_entry *
734733
mptcp_lookup_anno_list_by_saddr(struct mptcp_sock *msk,
735734
struct mptcp_addr_info *addr);
735+
int mptcp_pm_get_flags_and_ifindex_by_id(struct net *net, unsigned int id,
736+
u8 *flags, int *ifindex);
736737

737738
int mptcp_pm_announce_addr(struct mptcp_sock *msk,
738739
const struct mptcp_addr_info *addr,

net/mptcp/subflow.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,8 +1355,7 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *info,
13551355
}
13561356

13571357
int __mptcp_subflow_connect(struct sock *sk, const struct mptcp_addr_info *loc,
1358-
const struct mptcp_addr_info *remote,
1359-
u8 flags, int ifindex)
1358+
const struct mptcp_addr_info *remote)
13601359
{
13611360
struct mptcp_sock *msk = mptcp_sk(sk);
13621361
struct mptcp_subflow_context *subflow;
@@ -1367,6 +1366,8 @@ int __mptcp_subflow_connect(struct sock *sk, const struct mptcp_addr_info *loc,
13671366
struct sock *ssk;
13681367
u32 remote_token;
13691368
int addrlen;
1369+
int ifindex;
1370+
u8 flags;
13701371
int err;
13711372

13721373
if (!mptcp_is_fully_established(sk))
@@ -1390,6 +1391,8 @@ int __mptcp_subflow_connect(struct sock *sk, const struct mptcp_addr_info *loc,
13901391
local_id = err;
13911392
}
13921393

1394+
mptcp_pm_get_flags_and_ifindex_by_id(sock_net(sk), local_id,
1395+
&flags, &ifindex);
13931396
subflow->remote_key = msk->remote_key;
13941397
subflow->local_key = msk->local_key;
13951398
subflow->token = msk->token;

0 commit comments

Comments
 (0)