summaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorGeliang Tang <geliangtang@gmail.com>2020-09-24 08:30:01 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-04-13 12:50:12 +0200
commit9c382bc16fa8f7499b0663398437e125cf4f763b (patch)
treedfd9b497cd4d3e0e6e741f1301af712bdee09e2c /net/core
parent11387b2effbb55f58dc2111ef4b4b896f2756240 (diff)
downloadlinux-stable-9c382bc16fa8f7499b0663398437e125cf4f763b.tar.gz
linux-stable-9c382bc16fa8f7499b0663398437e125cf4f763b.tar.bz2
linux-stable-9c382bc16fa8f7499b0663398437e125cf4f763b.zip
mptcp: add sk_stop_timer_sync helper
[ Upstream commit 08b81d873126b413cda511b1ea1cbb0e99938bbd ] This patch added a new helper sk_stop_timer_sync, it deactivates a timer like sk_stop_timer, but waits for the handler to finish. Acked-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Geliang Tang <geliangtang@gmail.com> Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of: 151c9c724d05 ("tcp: properly terminate timers for kernel sockets") Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/sock.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c
index 62d169bcfcfa..eaa6f1ca414d 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -2804,6 +2804,13 @@ void sk_stop_timer(struct sock *sk, struct timer_list* timer)
}
EXPORT_SYMBOL(sk_stop_timer);
+void sk_stop_timer_sync(struct sock *sk, struct timer_list *timer)
+{
+ if (del_timer_sync(timer))
+ __sock_put(sk);
+}
+EXPORT_SYMBOL(sk_stop_timer_sync);
+
void sock_init_data(struct socket *sock, struct sock *sk)
{
sk_init_common(sk);