Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp1626026pxb; Mon, 12 Apr 2021 02:46:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBFdvP+OMyOOktV2mV9cWyioKp1yru09eR8a1SOIhu6/XkWgPMspG/IXx6xO1gHYoepfWJ X-Received: by 2002:a62:7d46:0:b029:247:baa2:d95c with SMTP id y67-20020a627d460000b0290247baa2d95cmr13303205pfc.15.1618220778421; Mon, 12 Apr 2021 02:46:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618220778; cv=none; d=google.com; s=arc-20160816; b=lGMYERpGCtpTNVGR2t3qfB0Vk17EMHLxGhdN1Fc/hg4/A/66LHR9ABAJzR5uP05Ikp G8As7ninTPD1OLl9/woQ73/re/x4+qqZm2AWuI30vWTppCY5ptz+5U4bo7s2C9AMqEXU c+s2Y513iQNni5v+tdwIatPtUw1I/Eg6TPBeIvmEZNKIjBXaAe+kUy82iw2PtlKhhn+J 3AxIkM+yOrea/Fi0Qz4x0ZQGqU5N6jQeB3C75E/Ig3F/oalM7kbIlEu1zNwomghcMcrs z0kyrRtA5AadY+BWi7Ujy8TX4TMcDJvBwK4OPK8Ir/PtFjb4XEqcpR2K2BRdjxLBMEUo 6mfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=VMCJDi5Z0RMsheEAdEPfdOiSEXsfCgN1DM9J9Z1J9G4=; b=nfAiEkB06iMZPz+YW3R8ikhrIIIwu0H2xYQ404UV9f4JCe7yw04xW6vEtQp7T2Oikr YnP2xizyO6EOFutdvnrMT8Zmrnq7DLf+QhyDyoY1hV2V1gBPvynUczl2srwJ3hPMiPGk RWCliJdTRpsOgIsmoMvdUw26iFDdPmTqWypyVNQ4SZqIdxywuZ3yZBcYVURU9DpLjn9W WPGJvFGb36qd/oX55/1i8NOvHF68DKLB44mkM+R0saS06S7f1QHG12lZNg2YjAVpOLug lMTrQu0OU5Xjj5C+43eyRKAby35ZBiZDBpBA8WpRuL5BEzS4Rt/MTvtGLLiW7FfPPEmu 3Llg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=BhlqROOa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m3si12958603pgg.237.2021.04.12.02.46.06; Mon, 12 Apr 2021 02:46:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=BhlqROOa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243454AbhDLJmJ (ORCPT + 99 others); Mon, 12 Apr 2021 05:42:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:36446 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240454AbhDLJKS (ORCPT ); Mon, 12 Apr 2021 05:10:18 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 48B1561285; Mon, 12 Apr 2021 09:05:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1618218333; bh=r/X//ApDsyWNF/tt+ADyLbC57YUHIBrmiykx+q5JCmo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BhlqROOaesFmVfnOSmNt7I2O/1FAax7/nGMhJxLvj6EhVq+Zjyf+7RvYKLNkM6HLi dtn/ORvgHwrY66IAqrAdfF0vl/3+UrnqhVMGrXNyCuVEUTH1DUuhlE2ORE04zw9AA+ rGbCr+ZkvAEtFFj+5Zm0hF5eyrWIoVKJOW3gPb/k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Paolo Abeni , Mat Martineau , "David S. Miller" , Sasha Levin Subject: [PATCH 5.11 157/210] mptcp: revert "mptcp: provide subflow aware release function" Date: Mon, 12 Apr 2021 10:41:02 +0200 Message-Id: <20210412084021.230371028@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210412084016.009884719@linuxfoundation.org> References: <20210412084016.009884719@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Paolo Abeni [ Upstream commit 0a3cc57978d1d1448312f8973bd84dca4a71433a ] This change reverts commit ad98dd37051e ("mptcp: provide subflow aware release function"). The latter introduced a deadlock spotted by syzkaller and is not needed anymore after the previous commit. Fixes: ad98dd37051e ("mptcp: provide subflow aware release function") Signed-off-by: Paolo Abeni Reviewed-by: Mat Martineau Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- net/mptcp/protocol.c | 55 ++------------------------------------------ 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index de9f2509acbe..e337b35a368f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include @@ -20,7 +19,6 @@ #include #if IS_ENABLED(CONFIG_MPTCP_IPV6) #include -#include #endif #include #include @@ -3424,34 +3422,10 @@ static __poll_t mptcp_poll(struct file *file, struct socket *sock, return mask; } -static int mptcp_release(struct socket *sock) -{ - struct mptcp_subflow_context *subflow; - struct sock *sk = sock->sk; - struct mptcp_sock *msk; - - if (!sk) - return 0; - - lock_sock(sk); - - msk = mptcp_sk(sk); - - mptcp_for_each_subflow(msk, subflow) { - struct sock *ssk = mptcp_subflow_tcp_sock(subflow); - - ip_mc_drop_socket(ssk); - } - - release_sock(sk); - - return inet_release(sock); -} - static const struct proto_ops mptcp_stream_ops = { .family = PF_INET, .owner = THIS_MODULE, - .release = mptcp_release, + .release = inet_release, .bind = mptcp_bind, .connect = mptcp_stream_connect, .socketpair = sock_no_socketpair, @@ -3498,35 +3472,10 @@ void __init mptcp_proto_init(void) } #if IS_ENABLED(CONFIG_MPTCP_IPV6) -static int mptcp6_release(struct socket *sock) -{ - struct mptcp_subflow_context *subflow; - struct mptcp_sock *msk; - struct sock *sk = sock->sk; - - if (!sk) - return 0; - - lock_sock(sk); - - msk = mptcp_sk(sk); - - mptcp_for_each_subflow(msk, subflow) { - struct sock *ssk = mptcp_subflow_tcp_sock(subflow); - - ip_mc_drop_socket(ssk); - ipv6_sock_mc_close(ssk); - ipv6_sock_ac_close(ssk); - } - - release_sock(sk); - return inet6_release(sock); -} - static const struct proto_ops mptcp_v6_stream_ops = { .family = PF_INET6, .owner = THIS_MODULE, - .release = mptcp6_release, + .release = inet6_release, .bind = mptcp_bind, .connect = mptcp_stream_connect, .socketpair = sock_no_socketpair, -- 2.30.2