On Fri, 3 Nov 2023, Geliang Tang wrote:
> This patch adds the validity check for sending RM_ADDRs for userspace PM
> in mptcp_pm_remove_addrs(), only send a RM_ADDR when the address is in the
> anno_list or conn_list.
>
> Fixes: 8b1c94da1e48 ("mptcp: only send RM_ADDR in nl_cmd_remove")
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> net/mptcp/pm_netlink.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
> index 1529ec358815..bf4d96f6f99a 100644
> --- a/net/mptcp/pm_netlink.c
> +++ b/net/mptcp/pm_netlink.c
> @@ -1515,8 +1515,9 @@ void mptcp_pm_remove_addrs(struct mptcp_sock *msk, struct list_head *rm_list)
> struct mptcp_pm_addr_entry *entry;
>
> list_for_each_entry(entry, rm_list, list) {
> - remove_anno_list_by_saddr(msk, &entry->addr);
> - if (alist.nr < MPTCP_RM_IDS_MAX)
> + if ((remove_anno_list_by_saddr(msk, &entry->addr) ||
> + lookup_subflow_by_saddr(&msk->conn_list, &entry->addr)) &&
> + alist.nr < MPTCP_RM_IDS_MAX)
> alist.ids[alist.nr++] = entry->addr.id;
> }
Looks good to me, thanks Geliang.
Reviewed-by: Mat Martineau <martineau@kernel.org>