Skip to content

Commit c029cf0

Browse files
Geliang Tangintel-lab-lkp
authored andcommitted
mptcp: pm: in-kernel: drop changed parameter of set_flags
To drop the additional "changed" parameter of mptcp_nl_set_flags(), store "entry->flags" to "remote->flags" before modifying it in mptcp_pm_nl_set_flags(), so that "changed" value can be obtained by comparing "local->flags" and "remote->flags" in mptcp_nl_set_flags(). Signed-off-by: Geliang Tang <[email protected]>
1 parent de25881 commit c029cf0

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

net/mptcp/pm_netlink.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1916,13 +1916,16 @@ static void mptcp_pm_nl_fullmesh(struct mptcp_sock *msk,
19161916

19171917
static void mptcp_nl_set_flags(struct net *net,
19181918
struct mptcp_pm_addr_entry *local,
1919-
u8 changed)
1919+
struct mptcp_pm_addr_entry *remote)
19201920
{
19211921
u8 is_subflow = !!(local->flags & MPTCP_PM_ADDR_FLAG_SUBFLOW);
19221922
u8 bkup = !!(local->flags & MPTCP_PM_ADDR_FLAG_BACKUP);
1923+
u8 changed, mask = MPTCP_PM_ADDR_FLAG_BACKUP |
1924+
MPTCP_PM_ADDR_FLAG_FULLMESH;
19231925
long s_slot = 0, s_num = 0;
19241926
struct mptcp_sock *msk;
19251927

1928+
changed = (local->flags ^ remote->flags) & mask;
19261929
if (changed == MPTCP_PM_ADDR_FLAG_FULLMESH && !is_subflow)
19271930
return;
19281931

@@ -1987,12 +1990,13 @@ int mptcp_pm_nl_set_flags(struct mptcp_pm_addr_entry *local,
19871990
return -EINVAL;
19881991
}
19891992

1993+
remote->flags = entry->flags;
19901994
changed = (local->flags ^ entry->flags) & mask;
19911995
entry->flags = (entry->flags & ~mask) | (local->flags & mask);
19921996
*local = *entry;
19931997
spin_unlock_bh(&pernet->lock);
19941998

1995-
mptcp_nl_set_flags(net, local, changed);
1999+
mptcp_nl_set_flags(net, local, remote);
19962000
return 0;
19972001
}
19982002

0 commit comments

Comments
 (0)