From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4D9E64280A; Wed, 22 Mar 2023 15:41:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D9A3F40E09; Wed, 22 Mar 2023 15:41:53 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2047.outbound.protection.outlook.com [40.107.244.47]) by mails.dpdk.org (Postfix) with ESMTP id 6CC0E40A84; Wed, 22 Mar 2023 15:41:52 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fca/jnC9X8Xiwbbafo4H2vnUiGKg3z5j1jwpTF/Q+rz/xpfNYjdcW6z1YL4gdUFwNDJ0wdvXxl6RbszR4LxfUpn7fEtgrCOC7owdPorhgPMG4BzYl1EtarfLu3D5EMu5hIgadqowkqwAHjtJEPY5cVJur7dpkrGlsHbrnPIMrFRwlNYJhgHeU5qA8XZyTbsifWecpdcBVgD+NonJQALb6m0Ld3qMhp8RBgaj3GzX5IBflOE74pJHuekRJa0OF0jhd7eR9NG0TC1FzhihiQqoQXgzWo102b95HsjXX/fT0Kul0KQHP479KiVcy0jshfLkVOiXB978e6sxt2XiUF4fZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=O6CHdeHeoX7c1BgdINYdN2EOhFcsAjlsYCHebnmPgUA=; b=gTEIpGyguJYgkEkp5dL+Igb/2dGinEeQCRE7hxz2UCAPXqGap1laOAt6N4DoPfuhxHuZdThNpMAO15UHKdG+RRdJDnCO4ahSzMRkuzfo4J/D1Bb1+yq409RRlAGrlf2SWNIgQ/sq5nyyrP7Pw3rAEyBG/T9GH2yBCqtKBAA4eyrmcibCts4yV/wbK74aFJw/yQTw8GFeXRfEr53UyPgXcNaya8CAX58lJQNokjcbp7KEHvYcMMYosFOX8TubT+OaVubrqhjAOma6eDoMf1nCnG6/PLv8vFuLzjy0spuxyeJKS0f94Nrtawj+GS8CfqIt6wk80kdGQCl/GQ/06PH5wQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=O6CHdeHeoX7c1BgdINYdN2EOhFcsAjlsYCHebnmPgUA=; b=gFuGTG05c2Owb02ocatC26RigFSZejQzSSejsT9kHud4Jbbzi8k13yuRhGDxs+LsVm6bwxvZwhFEnY7NgC2NAo1NFnMGPavb21hXpDarreuQHMwLGzLT8rw1XtbPoe1d9uqaInsTCz0MX4oMTf4MhX0kNah9aPhzKVL5W+QQi5kKkUG383HsZJhSWWCCQnqQnuUMELMDQhuV26L4gru8EzL6O67NQ2vfm9iF24ERzE9QRejYD8nIzskv0Y2LL66mt987qHcQHUd3sOoYvFHD0AyQFh/vkBTzMJF7T0i0YqgvxTT/Tt386PRn+hiRK+vOPLup9VuoURodFC8LewJ4sQ== Received: from CY5PR19CA0025.namprd19.prod.outlook.com (2603:10b6:930:15::28) by CH3PR12MB9022.namprd12.prod.outlook.com (2603:10b6:610:171::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Wed, 22 Mar 2023 14:41:50 +0000 Received: from CY4PEPF0000C983.namprd02.prod.outlook.com (2603:10b6:930:15:cafe::5a) by CY5PR19CA0025.outlook.office365.com (2603:10b6:930:15::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37 via Frontend Transport; Wed, 22 Mar 2023 14:41:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CY4PEPF0000C983.mail.protection.outlook.com (10.167.241.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.30 via Frontend Transport; Wed, 22 Mar 2023 14:41:50 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Wed, 22 Mar 2023 07:41:37 -0700 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Wed, 22 Mar 2023 07:41:35 -0700 From: Erez Shitrit To: CC: , Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH v4] net/mlx5/hws: fix bug in pattern creation Date: Wed, 22 Mar 2023 16:41:17 +0200 Message-ID: <20230322144117.655848-1-erezsh@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20230322101621.642765-1-erezsh@nvidia.com> References: <20230322101621.642765-1-erezsh@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000C983:EE_|CH3PR12MB9022:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d0caba3-9368-4c02-1bc7-08db2ae39238 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KO3M8jVPLMqDSzoadajDS8uGXsQD12u3sIzjhmVQ5ZJKTIAOvbMCCsM4uyNyM0aQ9Dk5UDbZUYuRob+cRjHu8euC0RrJf265P1TMLBGJ5dpx42qkNTzyTCEjsHWNSWhnBBejMDIiHb5891MhnTV5OkieBBEUH431lBDGHYNC0re3EP2o+xKN1imdlhM4IhE3eAcaG7+rBlp95lBgFDmOxYpeRw/9VdelTzZCHTfx+Sylb62/uBKEfq0szzIR3gtqzEEAyeBtVT1of0TquLsM7UhCfcBNNys72N23aY1Lq2+KZXOBWFWrq+49UxIwSHOMrjB4CgLylUz7OVsTagtMjSFgjlwjZfobyxRxeSC66D10C03pjBbE0B/L3agZQF0FxqOKIOQLLQxKZmqFd3mj4DeVjzBhQEGOhXV8gjopj7lMxCltXd3SjlJDN6invHvvytUpZfE2TTdk90gDiNlpKOHhal/uyQzgu5hejNRi01imhiYrrz25+EaGvVdLiChVra8egS5eWWjfweme6KUunRnTyVYtooZePlKaVLd3vl5aCtkgM+4EpXAePYfSuy9q72exfARxmA0wC61PwuGsrzB8WO3ZgGxaFut+4hNPwdafku+hpQxy5ge3+v7RHMYYzUVoVGLSYegATsx9znRntiZoOHBSaYGileF2Nm2zJ8zBDwU8pVFEHpwOn5G8VImQBY1IioulzaNu1buKel0iiz/X4pxQ+35JrVNNYuLNuaNmkY3RS2LpzVDXGK1kXZhF X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230025)(4636009)(136003)(396003)(346002)(39860400002)(376002)(451199018)(46966006)(40470700004)(36840700001)(7696005)(2616005)(41300700001)(107886003)(6286002)(186003)(16526019)(426003)(47076005)(4326008)(83380400001)(478600001)(6666004)(336012)(316002)(8676002)(70586007)(6916009)(450100002)(70206006)(26005)(1076003)(54906003)(36860700001)(8936002)(5660300002)(82740400003)(2906002)(36756003)(40460700003)(7636003)(55016003)(356005)(82310400005)(86362001)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2023 14:41:50.0119 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6d0caba3-9368-4c02-1bc7-08db2ae39238 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000C983.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9022 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org When creating a new pattern the data area should be clean, otherwise when the data will come from the arg object it will do OR operation on the data part in the pattern and use the dirty area as is. Now we clean the data area on each pattern creation. Fixes: f8c8a6d8440d ("net/mlx5/hws: add action object") Cc: stable@dpdk.org Signed-off-by: Erez Shitrit Reviewed-by: Alex Vesker Acked-by: Matan Azrad --- drivers/net/mlx5/hws/mlx5dr_cmd.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index a444fb4438..0adcedd9c9 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -523,9 +523,11 @@ mlx5dr_cmd_header_modify_pattern_create(struct ibv_context *ctx, uint32_t in[MLX5_ST_SZ_DW(create_header_modify_pattern_in)] = {0}; uint32_t out[MLX5_ST_SZ_DW(general_obj_out_cmd_hdr)] = {0}; struct mlx5dr_devx_obj *devx_obj; - void *pattern_data; + uint64_t *pattern_data; + int num_of_actions; void *pattern; void *attr; + int i; if (pattern_length > MAX_ACTIONS_DATA_IN_HEADER_MODIFY) { DR_LOG(ERR, "Pattern length %d exceeds limit %d", @@ -551,9 +553,19 @@ mlx5dr_cmd_header_modify_pattern_create(struct ibv_context *ctx, /* Pattern_length is in ddwords */ MLX5_SET(header_modify_pattern_in, pattern, pattern_length, pattern_length / (2 * DW_SIZE)); - pattern_data = MLX5_ADDR_OF(header_modify_pattern_in, pattern, pattern_data); + pattern_data = (uint64_t *)MLX5_ADDR_OF(header_modify_pattern_in, pattern, pattern_data); memcpy(pattern_data, actions, pattern_length); + num_of_actions = pattern_length / MLX5DR_MODIFY_ACTION_SIZE; + for (i = 0; i < num_of_actions; i++) { + int type; + + type = MLX5_GET(set_action_in, &pattern_data[i], action_type); + if (type != MLX5_MODIFICATION_TYPE_COPY) + /* Action typ-copy use all bytes for control */ + MLX5_SET(set_action_in, &pattern_data[i], data, 0); + } + devx_obj->obj = mlx5_glue->devx_obj_create(ctx, in, sizeof(in), out, sizeof(out)); if (!devx_obj->obj) { DR_LOG(ERR, "Failed to create header_modify_pattern"); -- 2.18.2