Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3869309pxb; Tue, 17 Nov 2020 05:50:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJwb4yWtD5baJI6sP3PijUtw2nVLq9fBIolheeuzQj6Bw7EcWLHsa6f42gebCU+LiHS+C+nQ X-Received: by 2002:a17:906:ec9:: with SMTP id u9mr19326721eji.400.1605621006083; Tue, 17 Nov 2020 05:50:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605621006; cv=none; d=google.com; s=arc-20160816; b=jbuTVe1GXOwTxy5l52BjBT1wOrE6pKiOWf/Vow80NI3YynjnSRH47rshE6jSO6IbZX 8Dq9jDVaFCJbSALkfUb5aAB8jafeyZUR/vTVQknk+YA5Wp+SMUqNNKNiqoUYZRVpOXhw 3ixn6n7Qy6fzGE2TpQ3/wYfHESNJqXdgqp73n10Nh8SCOkuaLWu9b2+LiBvsmY5WljBg azuaVu51caV+lbyKYwrEAZ6Sgor54O0EodqYGMjlif7Z5uw4KsUG1gM/uBA8N7/BkaIS Exn82ypiPY/lMa2P3heLi8MKM92IJA/KXAd/mkg4sOiYvFDgEMrqPEHfZtxfbBokmooC rPyg== 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=j7A2yRhHgx0mVNr6tvS3ELK9zNGEVhByfImJePrEl9g=; b=e5vCTypgIHjplfBv7Z/zKGwFcL9kSVO7U2y5bOPGd8qZ8fxan6Ph6olCG4UQOXfxPs NK+3+VdpbfmUdhdXcjsIqrBFOYLoUaDYZnu2FXWuLLLD2DScJGTbfVrQFzbdc4c90AmM RMruKLTlypQe8JwbCzGrtgQXohc/GlePO/OtFaKx81ZAq4bHz25sDZ66uK6GOOddHy+u yH28FbAna+Kj5MM5vD6q1mTK5Z95tHh7phyiXyIFbKF5bI0i2azBXcV8LU5ps97Ojy1F doZuGJ7TrqBEFwwpsb55rHGZe/2v+2bGfxap2qFO6VqrHxi8ZlyjuhTTTrfZDtgfOQal HwTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="xDFurkg/"; 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=fail (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 n2si806488edi.362.2020.11.17.05.49.42; Tue, 17 Nov 2020 05:50:06 -0800 (PST) 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=@kernel.org header.s=default header.b="xDFurkg/"; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732184AbgKQNhD (ORCPT + 99 others); Tue, 17 Nov 2020 08:37:03 -0500 Received: from mail.kernel.org ([198.145.29.99]:47568 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732610AbgKQNgi (ORCPT ); Tue, 17 Nov 2020 08:36:38 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7B6EB20780; Tue, 17 Nov 2020 13:36:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1605620198; bh=dQe5X2zX8tUxlzZFLtSsZqqRoTwEkLamL8R3iKbMvuY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xDFurkg/u9ez8x3nU0grB7mEDmBWUD5Zmx4oKWnVvvtk76JcPILidv9LzzwBzUrax RfLvQI441ftys0ME77I41hOKPeXbm1H/3ad6hzU2EN6WhJRV3w7vlcgGu85IT57fSY lXmw4fyvQofxJnkvCWqZTuAEMtRiS7TkJOgeplXk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Maor Gottlieb , Mark Bloch , Saeed Mahameed , Sasha Levin Subject: [PATCH 5.9 139/255] net/mlx5: Fix deletion of duplicate rules Date: Tue, 17 Nov 2020 14:04:39 +0100 Message-Id: <20201117122145.711151547@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201117122138.925150709@linuxfoundation.org> References: <20201117122138.925150709@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: Maor Gottlieb [ Upstream commit 465e7baab6d93b399344f5868f84c177ab5cd16f ] When a rule is duplicated, the refcount of the rule is increased so only the second deletion of the rule should cause destruction of the FTE. Currently, the FTE will be destroyed in the first deletion of rule since the modify_mask will be 0. Fix it and call to destroy FTE only if all the rules (FTE's children) have been removed. Fixes: 718ce4d601db ("net/mlx5: Consolidate update FTE for all removal changes") Signed-off-by: Maor Gottlieb Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed Signed-off-by: Sasha Levin --- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index 75fa44eee434d..d4755d61dd740 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -1994,10 +1994,11 @@ void mlx5_del_flow_rules(struct mlx5_flow_handle *handle) down_write_ref_node(&fte->node, false); for (i = handle->num_rules - 1; i >= 0; i--) tree_remove_node(&handle->rule[i]->node, true); - if (fte->modify_mask && fte->dests_size) { - modify_fte(fte); + if (fte->dests_size) { + if (fte->modify_mask) + modify_fte(fte); up_write_ref_node(&fte->node, false); - } else { + } else if (list_empty(&fte->node.children)) { del_hw_fte(&fte->node); /* Avoid double call to del_hw_fte */ fte->node.del_hw_func = NULL; -- 2.27.0