Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1415202rwb; Thu, 6 Oct 2022 12:40:41 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4CLw3vp3ntrK12xonzc7Dr5+j4rxgRSINYz8W2BMFQ3BpyNHOJyxkA16SiR8+AXN9HxZdU X-Received: by 2002:a17:906:ef8b:b0:77f:2b14:6eef with SMTP id ze11-20020a170906ef8b00b0077f2b146eefmr1224980ejb.612.1665085241238; Thu, 06 Oct 2022 12:40:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665085241; cv=none; d=google.com; s=arc-20160816; b=Vc2BW6TeFoYNPmCJQHRP2PvE4C4pb+YE0MROAeQUXcaId+AAOEwyW2DFCDZuaZ8Aaa OMBTK6jAUbP8Y4ai6mrYZzl1PgqorzBUPJtGQ1nBuQxTR8RCWvO83PPWADzwgJq9Ut+C GHheuQOMb6kkg5ciBKGS+rEsnszbWXAw+RlHt7vWPXSCH1VEty3BzDQVFCuOcWwzlgT6 utGLlbr/53OBwpmrWRRvi9W8PHyGu28ZsSfrwmLSqOFvjkzDznAyngUPijYq+fCzrUyr u1Ui5wOrGPKhhaA1dtlhxSNSeEW7SN6mn5iDBfobcekEnv55tJPs8QraXTkbRvOEf5KH GNDA== 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 :message-id:date:subject:cc:to:from; bh=7OdrUaPVrwTS7EqR/yq0b0VgoysYLcIKabROOFTxTe8=; b=vISJWNlQ40A/YIB8xkpWVQ3Ho/bqSoGk/c22bG/cNf25Y1VUDrk+BX817WCKpLYrit 5+/enljtE5e5UtftkXwHB2sOF/bhz8dKxWgGk5QFSTnE9NBv0BlQCKEd81/vS6JxtTdE Y9u5GHeZTCbYcfKqLhyiAdILXXUqzMcMjEPu98pvEBecER1fPhvlH80/xN31Koi5B1qV ZgzuB9/iWKgJKnL/NRk8Y5wFt034zpEUrjPFWsedk1gNpnh3qBbGCcJpJtFpa43EitzN y1gAphEFcEOo88+6P5oDM4AsOCBh9CVLvaQ0+rrQpRs0qupoxKNhD2Tn6zv+UkdeigoJ qlLQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=plvision.eu Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sb38-20020a1709076da600b0073d751c96adsi240934ejc.1000.2022.10.06.12.40.11; Thu, 06 Oct 2022 12:40:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=plvision.eu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231859AbiJFT0X (ORCPT + 99 others); Thu, 6 Oct 2022 15:26:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231631AbiJFT0U (ORCPT ); Thu, 6 Oct 2022 15:26:20 -0400 X-Greylist: delayed 1186 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Thu, 06 Oct 2022 12:26:12 PDT Received: from syslogsrv (unknown [217.20.186.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CEE029E6AD; Thu, 6 Oct 2022 12:26:12 -0700 (PDT) Received: from fg200.ow.s ([172.20.254.44] helo=localhost.localdomain) by syslogsrv with esmtp (Exim 4.90_1) (envelope-from ) id 1ogWAN-0004O0-OZ; Thu, 06 Oct 2022 22:04:19 +0300 From: Maksym Glubokiy To: Taras Chornyi , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Volodymyr Mytnyk , Serhiy Boiko , Vadym Kochan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Maksym Glubokiy Subject: [PATCH net] prestera: matchall: do not rollback if rule exists Date: Thu, 6 Oct 2022 22:04:09 +0300 Message-Id: <20221006190409.881219-1-maksym.glubokiy@plvision.eu> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FSL_HELO_NON_FQDN_1, HELO_NO_DOMAIN,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Serhiy Boiko If you try to create a 'mirror' ACL rule on a port that already has a mirror rule, prestera_span_rule_add() will fail with EEXIST error. This forces rollback procedure which destroys existing mirror rule on hardware leaving it visible in linux. Add an explicit check for EEXIST to prevent the deletion of the existing rule but keep user seeing error message: $ tc filter add dev sw1p1 ... skip_sw action mirred egress mirror dev sw1p2 $ tc filter add dev sw1p1 ... skip_sw action mirred egress mirror dev sw1p3 RTNETLINK answers: File exists We have an error talking to the kernel Fixes: 13defa275eef ("net: marvell: prestera: Add matchall support") Signed-off-by: Serhiy Boiko Signed-off-by: Maksym Glubokiy --- drivers/net/ethernet/marvell/prestera/prestera_matchall.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/marvell/prestera/prestera_matchall.c b/drivers/net/ethernet/marvell/prestera/prestera_matchall.c index 6f2b95a5263e..1da9c1bc1ee9 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_matchall.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_matchall.c @@ -96,6 +96,8 @@ int prestera_mall_replace(struct prestera_flow_block *block, list_for_each_entry(binding, &block->binding_list, list) { err = prestera_span_rule_add(binding, port, block->ingress); + if (err == -EEXIST) + return err; if (err) goto rollback; } -- 2.25.1