Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp3505417iob; Tue, 17 May 2022 01:13:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxmw0jIoPnZ97cstgQww0PccozSGavErlbkR7/ttdW/s+US/rLjSQVrkX7KBHZxzX6DLTjj X-Received: by 2002:a63:1d6:0:b0:3c1:732a:3855 with SMTP id 205-20020a6301d6000000b003c1732a3855mr18241249pgb.571.1652775200189; Tue, 17 May 2022 01:13:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652775200; cv=none; d=google.com; s=arc-20160816; b=rtjKL1tr418FUlRiGaiv2UFirWd1cYlNCTSMpOTWpLPXz5MSxtlIjKGFffO3ZkjeIB 4+AzlvBzn4U/4bBwaakCuDTU1nBWlNoEgoYHTUYl/bwhUaSFO1KM4M0v55Da/Oc2ao0A zw6lXAEdB6v8LxxbaUj+r5JPzg9NSfCOcPLwc70/Yen2lEbe51yt9pCCU/McJRILhScm 0oWttMSLe7Bo/WlKqiCGYW92eHA1wIoi5cRWYQ0wA752/mA17mV7Pqw1JZFhTIlRnBLG XcJzXuHIrlI13a61DF00obEaqZo9nj8BFa2nrIyHZk9J+H0Q2QnpgzCfDAm4+TDlqxCD UAaw== 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=q/dvG8KQfmiKDWn/6dcYbmj3oSPiuID8BONmGTOykoM=; b=GCEbJ8nabd/wTbZgpx5q3MK7nyHNtGUuHLhYHZ+AZspmwbDoImD/ObKjgQIV4NS2iz +Saxcy7ijE77DqZZUhK5cUCRnLsq3tUaYFwJDkrbXjwKPI2Akp5ckaBFHGUumeJPagq9 wTW6O7MhXdH9UFOcRgmmAKV5FlGBQtbQ4mUAPMdpQeScdh7uo7ZmcW/lCftNcWNNqyQb tvbzMg3vPS6xjP0Bc49ioxKrwpsqZBk4E4PnmaHRNFry9q0oDAk3350ZfaRUeXt6OX4V GxseO8RT02in2NJ+7L9JyUCOWfVrIg7TMGuD3iuhbw+uYK/0ZHjSIunBH0BtagNxrIV2 7qNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FgaJIu1A; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bb3-20020a170902bc8300b00158f80642a6si6088938plb.109.2022.05.17.01.13.08; Tue, 17 May 2022 01:13:20 -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; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FgaJIu1A; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343864AbiEPUY0 (ORCPT + 99 others); Mon, 16 May 2022 16:24:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348306AbiEPT6d (ORCPT ); Mon, 16 May 2022 15:58:33 -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 528C2434BC; Mon, 16 May 2022 12:50:28 -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 C158DB81614; Mon, 16 May 2022 19:50:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19399C385AA; Mon, 16 May 2022 19:50:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1652730625; bh=VbcijCb6Rp+Jf2r/UgG7n+MJXK5apoNhh0m1772GtGc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FgaJIu1AQLXNb2bb+4w3Ba57HwGr6J1Ni4YGF/dNU+qobSyvYMy3OhRt9VnhRwehY yL0E6+N+wY//Y5gGaOx0k/rETAe7OmAuKVqPA4oRqYcQY7PyYuWA+gQKBwgHdl+XEC YxJr3XkNwbkCAtFrIfK4ehtMN918qqREERL/9nMA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vladimir Oltean , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 008/102] net: mscc: ocelot: restrict tc-trap actions to VCAP IS2 lookup 0 Date: Mon, 16 May 2022 21:35:42 +0200 Message-Id: <20220516193624.233592876@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220516193623.989270214@linuxfoundation.org> References: <20220516193623.989270214@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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: Vladimir Oltean [ Upstream commit 477d2b91623e682e9a8126ea92acb8f684969cc7 ] Once the CPU port was added to the destination port mask of a packet, it can never be cleared, so even packets marked as dropped by the MASK_MODE of a VCAP IS2 filter will still reach it. This is why we need the OCELOT_POLICER_DISCARD to "kill dropped packets dead" and make software stop seeing them. We disallow policer rules from being put on any other chain than the one for the first lookup, but we don't do this for "drop" rules, although we should. This change is merely ascertaining that the rules dont't (completely) work and letting the user know. The blamed commit is the one that introduced the multi-chain architecture in ocelot. Prior to that, we should have always offloaded the filters to VCAP IS2 lookup 0, where they did work. Fixes: 1397a2eb52e2 ("net: mscc: ocelot: create TCAM skeleton from tc filter chains") Signed-off-by: Vladimir Oltean Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- drivers/net/ethernet/mscc/ocelot_flower.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c index f1323af99b0c..a3a5ad5dbb0e 100644 --- a/drivers/net/ethernet/mscc/ocelot_flower.c +++ b/drivers/net/ethernet/mscc/ocelot_flower.c @@ -206,9 +206,10 @@ static int ocelot_flower_parse_action(struct ocelot *ocelot, int port, filter->type = OCELOT_VCAP_FILTER_OFFLOAD; break; case FLOW_ACTION_TRAP: - if (filter->block_id != VCAP_IS2) { + if (filter->block_id != VCAP_IS2 || + filter->lookup != 0) { NL_SET_ERR_MSG_MOD(extack, - "Trap action can only be offloaded to VCAP IS2"); + "Trap action can only be offloaded to VCAP IS2 lookup 0"); return -EOPNOTSUPP; } if (filter->goto_target != -1) { -- 2.35.1