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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 194D2C3A59D for ; Mon, 24 Oct 2022 06:13:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230181AbiJXGNN (ORCPT ); Mon, 24 Oct 2022 02:13:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230224AbiJXGNK (ORCPT ); Mon, 24 Oct 2022 02:13:10 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36DDC5E55E for ; Sun, 23 Oct 2022 23:13:08 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id CA22DB80E49 for ; Mon, 24 Oct 2022 06:13:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4834C433D6; Mon, 24 Oct 2022 06:13:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666591985; bh=f6/MonIYi56jFppHWg+g0BIwso7kY+yyNU6yof9Gns0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vGUr1l/osCX29lca83G4UNbpKJr3Wi4JLsbuVhQ4zq8YjpMW9zXadHOEAuWukDTan VmRui2GShW+XBjQh1ud1wHczLYxBBqSKeO0IRFPKhIfn92AFhg+F2zptEzKjgfIX6n GFHYH7vdgekrFfZ0J6WO76F1V4KbDaWyOqGoEinUWhHS1T/Af3YUXTovFHHGyDNP0f H0My1gY43HqaCfBypJtAwQWFZ//1svDvUk+StmY4pqfYQTOKJwVLGmzPLMgV3yNAOp inkx89Xm61MKZGj0ot1va3OHQLauXOSV44WJ7omh7Bbfmmdsnos24B5xt3Hs3/1bIZ rLMkIJOthC1IA== From: Saeed Mahameed To: "David S. Miller" , Jakub Kicinski , Paolo Abeni , Eric Dumazet Cc: Saeed Mahameed , netdev@vger.kernel.org, Tariq Toukan , Rongwei Liu Subject: [V2 net 03/16] net/mlx5: DR, Fix matcher disconnect error flow Date: Mon, 24 Oct 2022 07:12:07 +0100 Message-Id: <20221024061220.81662-4-saeed@kernel.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221024061220.81662-1-saeed@kernel.org> References: <20221024061220.81662-1-saeed@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Rongwei Liu When 2nd flow rules arrives, it will merge together with the 1st one if matcher criteria is the same. If merge fails, driver will rollback the merge contents, and reject the 2nd rule. At rollback stage, matcher can't be disconnected unconditionally, otherise the 1st rule can't be hit anymore. Add logic to check if the matcher should be disconnected or not. Fixes: cc2295cd54e4 ("net/mlx5: DR, Improve steering for empty or RX/TX-only matchers) Signed-off-by: Rongwei Liu Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c index ddfaf7891188..91ff19f67695 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c @@ -1200,7 +1200,8 @@ dr_rule_create_rule_nic(struct mlx5dr_rule *rule, } remove_from_nic_tbl: - mlx5dr_matcher_remove_from_tbl_nic(dmn, nic_matcher); + if (!nic_matcher->rules) + mlx5dr_matcher_remove_from_tbl_nic(dmn, nic_matcher); free_hw_ste: mlx5dr_domain_nic_unlock(nic_dmn); -- 2.37.3