From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A7D5C4363D for ; Thu, 24 Sep 2020 01:06:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B869021D20 for ; Thu, 24 Sep 2020 01:06:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tlGitdO2" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726819AbgIXBGC (ORCPT ); Wed, 23 Sep 2020 21:06:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46938 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726466AbgIXBGC (ORCPT ); Wed, 23 Sep 2020 21:06:02 -0400 Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25137C0613CE; Wed, 23 Sep 2020 18:06:02 -0700 (PDT) Received: by mail-pl1-x641.google.com with SMTP id e4so698542pln.10; Wed, 23 Sep 2020 18:06:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=AtzU9j2IVKPI1js+HfqCYbfNPkUBuxHykiGDefT3GX4=; b=tlGitdO2MdhbIvIfljqNkujgc77+mZ/rDuACm9Pw+TDpnga+QqD58kEGNEcC+7J+DW iCGzb0YwBIISAouUMK9OVbp9dFTMJARdNZwchjhhezUgvyquOjNc2KhelP6aSXxHQSqW bulNiXbjqj6pg6/nCiOioL77TDowQs17hJhGrmgVB0Nsv6C2BaND6rkdT+rO3Y1vR7J3 S8+khNZAgmVKLAHnBrITnfmID6w0UlhSWM9zN5Pv8FtHuNtUydd+VZxIKRC0xusdWPDb C3RS+Qb5RISTu01JOItRWFR9Os57gVMlWJhASKYwSGD+imJC9XrDBjA5NEqF/KuRDYO5 wl5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=AtzU9j2IVKPI1js+HfqCYbfNPkUBuxHykiGDefT3GX4=; b=DQMriBOLK5YayClYNSHDS5ziX0GM+f6DBYTq3+vAfAeaPYKu0388v6kpN592aJqhrs n5hEQou7QwcCwmSLrBeAsztKgOZK75T3swvrYBH5gyeifZ4p7RBddXn+iqU/7HE3kT7l x95oy5T7XaDL1pbmik8ZboEjX7E8kU4UQJIOxN8EuhnG3fBvl1UDzf1w5c24sM+JoXGm t6JeEkEbVzHdG1XzgExj4X1EvB0DGqGzGaQ3QwGUjsASpPemjgmYDXWUf8pB3/GyPj/w GyYT8kEWGSBc1dSGMYVeiQLN7joWMLMoS8dVsE/iKTZ4QuY02gMFbi3PHgt8ug3MUIB9 zGuw== X-Gm-Message-State: AOAM53308hMzHycb9NslhigNv7hoeg+jlv2BxsTBbuCROdvnj0KCiqLo PvCXbQU+EOLX4XlXwu2inIo= X-Google-Smtp-Source: ABdhPJyo6OpepoJlMUCbN2XSI5tTuyT0Xagp3lfHxVXSPr7rHuOqq2RztKxn3n2+i9B5OHAE3JvlaQ== X-Received: by 2002:a17:90b:510:: with SMTP id r16mr1707948pjz.75.1600909561763; Wed, 23 Sep 2020 18:06:01 -0700 (PDT) Received: from localhost ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id n21sm901910pgl.7.2020.09.23.18.06.00 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Sep 2020 18:06:01 -0700 (PDT) From: Geliang Tang To: Mat Martineau , Matthieu Baerts , "David S. Miller" , Jakub Kicinski Cc: Geliang Tang , netdev@vger.kernel.org, mptcp@lists.01.org, linux-kernel@vger.kernel.org Subject: [MPTCP][PATCH net-next 15/16] mptcp: add sk_stop_timer_sync helper Date: Thu, 24 Sep 2020 08:30:01 +0800 Message-Id: <31247220b62d6759de9eb91b841be449714b9d69.1600853093.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: <26617b54898c115de8d916633b8e42055ed5c678.1600853093.git.geliangtang@gmail.com> References: <430dd4f9c241ae990a5cfa6809276b36993ce91b.1600853093.git.geliangtang@gmail.com> <7b0898eff793dde434464b5fac2629739d9546fd.1600853093.git.geliangtang@gmail.com> <98bcc56283c482c294bd6ae9ce1476821ddc6837.1600853093.git.geliangtang@gmail.com> <37f2befac450fb46367f62446a4bb2c9d0a5986a.1600853093.git.geliangtang@gmail.com> <5018fd495529e058ea866e8d8edbe0bb98ec733a.1600853093.git.geliangtang@gmail.com> <644420f22ba6f0b9f9f3509c081d8d639ff4bbf3.1600853093.git.geliangtang@gmail.com> <26617b54898c115de8d916633b8e42055ed5c678.1600853093.git.geliangtang@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Signed-off-by: Geliang Tang --- include/net/sock.h | 2 ++ net/core/sock.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/include/net/sock.h b/include/net/sock.h index eaa5cac5e836..a5c6ae78df77 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -2195,6 +2195,8 @@ void sk_reset_timer(struct sock *sk, struct timer_list *timer, void sk_stop_timer(struct sock *sk, struct timer_list *timer); +void sk_stop_timer_sync(struct sock *sk, struct timer_list *timer); + int __sk_queue_drop_skb(struct sock *sk, struct sk_buff_head *sk_queue, struct sk_buff *skb, unsigned int flags, void (*destructor)(struct sock *sk, diff --git a/net/core/sock.c b/net/core/sock.c index ba9e7d91e2ef..d9a537e6876a 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2947,6 +2947,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); -- 2.17.1