@@ -1907,11 +1907,12 @@ static void mptcp_pm_nl_fullmesh(struct mptcp_sock *msk,
spin_unlock_bh(&msk->pm.lock);
}
-static void mptcp_nl_set_flags(struct net *net, struct mptcp_addr_info *addr,
- u8 flags, u8 changed)
+static void mptcp_nl_set_flags(struct net *net,
+ struct mptcp_pm_addr_entry *local,
+ u8 changed)
{
- u8 is_subflow = !!(flags & MPTCP_PM_ADDR_FLAG_SUBFLOW);
- u8 bkup = !!(flags & MPTCP_PM_ADDR_FLAG_BACKUP);
+ u8 is_subflow = !!(local->flags & MPTCP_PM_ADDR_FLAG_SUBFLOW);
+ u8 bkup = !!(local->flags & MPTCP_PM_ADDR_FLAG_BACKUP);
long s_slot = 0, s_num = 0;
struct mptcp_sock *msk;
@@ -1926,10 +1927,10 @@ static void mptcp_nl_set_flags(struct net *net, struct mptcp_addr_info *addr,
lock_sock(sk);
if (changed & MPTCP_PM_ADDR_FLAG_BACKUP)
- mptcp_pm_nl_mp_prio_send_ack(msk, addr, NULL, bkup);
+ mptcp_pm_nl_mp_prio_send_ack(msk, &local->addr, NULL, bkup);
/* Subflows will only be recreated if the SUBFLOW flag is set */
if (is_subflow && (changed & MPTCP_PM_ADDR_FLAG_FULLMESH))
- mptcp_pm_nl_fullmesh(msk, addr);
+ mptcp_pm_nl_fullmesh(msk, &local->addr);
release_sock(sk);
next:
@@ -1983,7 +1984,7 @@ int mptcp_pm_nl_set_flags(struct mptcp_pm_addr_entry *local,
*local = *entry;
spin_unlock_bh(&pernet->lock);
- mptcp_nl_set_flags(net, &local->addr, local->flags, changed);
+ mptcp_nl_set_flags(net, local, changed);
return 0;
}