From: Geliang Tang <geliangt...@gmail.com> This patch uses adding up size to get the ADD_ADDR suboption length rather than returning the ADD_ADDR size constants.
Signed-off-by: Geliang Tang <geliangt...@gmail.com> Signed-off-by: Mat Martineau <mathew.j.martin...@linux.intel.com> --- net/mptcp/protocol.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 987046d9d1d4..5c45aabf4c6a 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -578,10 +578,14 @@ static inline bool mptcp_pm_should_rm_signal(struct mptcp_sock *msk) static inline unsigned int mptcp_add_addr_len(int family, bool echo) { - if (family == AF_INET) - return echo ? TCPOLEN_MPTCP_ADD_ADDR_BASE - : TCPOLEN_MPTCP_ADD_ADDR; - return echo ? TCPOLEN_MPTCP_ADD_ADDR6_BASE : TCPOLEN_MPTCP_ADD_ADDR6; + u8 len = TCPOLEN_MPTCP_ADD_ADDR_BASE; + + if (family == AF_INET6) + len = TCPOLEN_MPTCP_ADD_ADDR6_BASE; + if (!echo) + len += MPTCPOPT_THMAC_LEN; + + return len; } bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, unsigned int remaining, -- 2.29.2