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 7684046423 for ; Wed, 19 Mar 2025 15:22:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 70C83402E1; Wed, 19 Mar 2025 15:22:06 +0100 (CET) Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by mails.dpdk.org (Postfix) with ESMTP id 2772D4026B for ; Wed, 19 Mar 2025 15:22:05 +0100 (CET) Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-3914bc3e01aso4649917f8f.2 for ; Wed, 19 Mar 2025 07:22:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742394125; x=1742998925; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MbOfBVXXxYezevllu3lrdb9/x742JE+6f18J7qG/UaA=; b=E5yzGQvheng//jBrxTFHXus2tYnyZPbUqY9GXC+zGF+hbed5T6o5ei9eOicDlz563c II68XAiBmUO7zaSsbfAgS27hpuzVupYFmgWf+TAT03i6a3eEpw7ymB+s9DIeZDp8XJUT s3hbu7sQ2TPcFUACJk5QJ6wvNtzL++P5GaaXgzJXQIo20kRHtFWnd6ZxWHO+ojUlKcq7 xYz16+gYpHii1EdAG7GfkCtsCCbJpiWLTj20X5MDL2+bEQz7hZ8OjCGg146H54WRMxW0 vij8SICImZfPQznBGGwIn9NLim05Z2Dm7n2+NETPAEnrY84QwWQdwf3O3P/ouZFv2mLs 0rQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742394125; x=1742998925; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MbOfBVXXxYezevllu3lrdb9/x742JE+6f18J7qG/UaA=; b=BZLpEjS3j8cQWKQGRrStF4zPKvWBro9f2SVVufihCcrrYmHYAsjVQov948Dr/H1d44 NREM1A17AjUg2shEWwMDxliigq8wiRyaV+lG4EwuV/dP87XfjJmJF7iP+hCuULGKZD+R oNbhdQ4S/9XnBWTBC8e/IYvnOcTIcYPclbc22aAQcrZtGfXwUqWxyN6y5D093nSiR4Di NtCw8mAXHcJMx0P9jCxlfRmvynFkpTzrtQvCgN18+QnSvkB//wSG6WMXDCUdOrPdFiRL fV4m4FZqCnrCjQB+YXIukxr8XqBwqQpRJl2KIg83it8vbJiFvbyiIUbjxzunSZOW1ADN KyrA== X-Forwarded-Encrypted: i=1; AJvYcCWcSftqPHgvW00pjhPz0tgnxEpuilHANsHi7yl3meiScV261jE31YsrWG5A+/ZDvOXoMQZ9wus=@dpdk.org X-Gm-Message-State: AOJu0Yyp4VP9FOnzgM3ZqKexKGNi/2XGcKgZ9feuUIogngBcoZUfXd7E JjXG7CPtrdmBGWn9sDJwPtT2CeS3/FuRIh2rXJBQX+tXbqajm+PZ X-Gm-Gg: ASbGncvHA+GduDJjafy27yeYu/kX+jcs5B9T9D0KXrSrt+cQmPJ0TI3WuOM9ZkePLtS dl9gynGm1divff4yFzFttQkwphkyUEKmfsWXC+D+fQCB232RIoUy1/RW54KVpUErQPQTc3e+/+z LHT+FxiWwn8gF1F749EkbfFI5ebYBreQwK8lvnDs/PvLt0z+Q5rs1nLXARjL1LjU5jON1Q0TdMj MJ4XYPMnhFBOja/1TORMdynoEllmkfoIclZdprAojpyO6KcRF/8C7vm1K0aO+gdJiRFg7EFoi0F TTo2cOx8vTJyu+1ZpjJQwxH/ANjX/gtJbiwx5IjVuXuSBNHymik= X-Google-Smtp-Source: AGHT+IF8RJGy/2DKgsDxe6sOXf70TiVDTVnyu/rmvZZaJO7PXtm7v7MKluSl40nPw2OD6LylZmk59w== X-Received: by 2002:a5d:5985:0:b0:391:39bd:a361 with SMTP id ffacd0b85a97d-399739ed7c9mr2848064f8f.18.1742394124661; Wed, 19 Mar 2025 07:22:04 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:4eab:5a5d:ba39:287e]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-395cb40fab8sm21749739f8f.63.2025.03.19.07.22.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 07:22:04 -0700 (PDT) From: luca.boccassi@gmail.com To: Maayan Kashani Cc: Dariusz Sosnowski , dpdk stable Subject: patch 'net/mlx5/hws: fix crash using represented port without ID' has been queued to stable release 22.11.8 Date: Wed, 19 Mar 2025 14:21:17 +0000 Message-ID: <20250319142142.439602-6-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250319142142.439602-1-luca.boccassi@gmail.com> References: <20250307122431.1415551-28-luca.boccassi@gmail.com> <20250319142142.439602-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 22.11.8 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 03/21/25. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/421ec973fa0ba851250becfe1b73ec77bc0c807c Thanks. Luca Boccassi --- >From 421ec973fa0ba851250becfe1b73ec77bc0c807c Mon Sep 17 00:00:00 2001 From: Maayan Kashani Date: Thu, 27 Feb 2025 12:33:29 +0200 Subject: [PATCH] net/mlx5/hws: fix crash using represented port without ID [ upstream commit 1de93ca6aee6acb785c8080f84da26b09835af0f ] For non-template API on top of HWS, when trying to use represented-port item w/o setting the ethdev_port_id, it crashes. Added default values to match the case for SWS. Default port is now eswitch manager id. Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer") Signed-off-by: Maayan Kashani Acked-by: Dariusz Sosnowski --- drivers/net/mlx5/hws/mlx5dr_definer.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c index bc1decbec9..805025184c 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.c +++ b/drivers/net/mlx5/hws/mlx5dr_definer.c @@ -392,10 +392,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc, uint8_t *tag) { const struct rte_flow_item_ethdev *v = item_spec; - const struct flow_hw_port_info *port_info; + const struct flow_hw_port_info *port_info = NULL; uint32_t regc_value; - port_info = flow_hw_conv_port_id(v->port_id); + if (v) + port_info = flow_hw_conv_port_id(v->port_id); if (unlikely(!port_info)) regc_value = BAD_PORT; else @@ -977,11 +978,12 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd, struct rte_flow_item *item, int item_idx) { - const struct rte_flow_item_ethdev *m = item->mask; + uint16_t port_id = item->mask ? + ((const struct rte_flow_item_ethdev *)(item->mask))->port_id : 0; struct mlx5dr_definer_fc *fc; uint8_t bit_offset = 0; - if (m->port_id) { + if (port_id) { if (!cd->caps->wire_regc_mask) { DR_LOG(ERR, "Port ID item not supported, missing wire REGC mask"); rte_errno = ENOTSUP; @@ -998,10 +1000,6 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd, DR_CALC_SET_HDR(fc, registers, register_c_0); fc->bit_off = bit_offset; fc->bit_mask = cd->caps->wire_regc_mask >> bit_offset; - } else { - DR_LOG(ERR, "Pord ID item mask must specify ID mask"); - rte_errno = EINVAL; - return rte_errno; } return 0; -- 2.47.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-03-19 14:20:57.304059510 +0000 +++ 0006-net-mlx5-hws-fix-crash-using-represented-port-withou.patch 2025-03-19 14:20:57.057288838 +0000 @@ -1 +1 @@ -From 1de93ca6aee6acb785c8080f84da26b09835af0f Mon Sep 17 00:00:00 2001 +From 421ec973fa0ba851250becfe1b73ec77bc0c807c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 1de93ca6aee6acb785c8080f84da26b09835af0f ] + @@ -14 +15,0 @@ -Cc: stable@dpdk.org @@ -23 +24 @@ -index 98d670fc1c..a4b9306d2b 100644 +index bc1decbec9..805025184c 100644 @@ -26 +27 @@ -@@ -772,10 +772,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc, +@@ -392,10 +392,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc, @@ -34 +35 @@ -- port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id); +- port_info = flow_hw_conv_port_id(v->port_id); @@ -36 +37 @@ -+ port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id); ++ port_info = flow_hw_conv_port_id(v->port_id); @@ -40 +41,2 @@ -@@ -1585,10 +1586,11 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd, +@@ -977,11 +978,12 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd, + struct rte_flow_item *item, @@ -43 +44,0 @@ - struct mlx5dr_cmd_query_caps *caps = cd->ctx->caps; @@ -47,0 +49 @@ + uint8_t bit_offset = 0; @@ -51 +53 @@ - if (!caps->wire_regc_mask) { + if (!cd->caps->wire_regc_mask) { @@ -54,4 +56,4 @@ -@@ -1603,10 +1605,6 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd, - fc->bit_off = rte_ctz32(caps->wire_regc_mask); - fc->bit_mask = caps->wire_regc_mask >> fc->bit_off; - fc->dr_ctx = cd->ctx; +@@ -998,10 +1000,6 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd, + DR_CALC_SET_HDR(fc, registers, register_c_0); + fc->bit_off = bit_offset; + fc->bit_mask = cd->caps->wire_regc_mask >> bit_offset;