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 607C0489EF for ; Mon, 27 Oct 2025 17:24:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 59B63406B8; Mon, 27 Oct 2025 17:24:06 +0100 (CET) Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mails.dpdk.org (Postfix) with ESMTP id 8DF574028B for ; Mon, 27 Oct 2025 17:24:05 +0100 (CET) Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4710665e7deso25515115e9.1 for ; Mon, 27 Oct 2025 09:24:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761582245; x=1762187045; 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=0VY/PgB6ZY1F6rl3mZjPiydGdCarQBX3xemGwBVl/Cw=; b=m1diCKrSqTuYJZF8tThmzLNpufsJa4I/c1Q8JCKas6Xl3CqbTVy/zojW5rD0QnEMD7 Q2kelwDegEscSLpLw9Mn5k9LXdY9T5LUBYXAAbSs5Bq6zt3hBs3s1Na9VAiTuAO3yHd7 6TXjNQBx5vEpjLi0KHOBubwiiVF5J4qdAuTnE6rIr57v+TVExgcc5rFuFJOlZj1chC3U +mNyVeBKpMTrhr9cBpODnCNA31Ss3QqFIfBth0gAAQ4WQCrGIcb1es2M5J0wUZde3KMt JueDaFKG5l8GdTkgr5pbdbIdN2AgssFOlWh0Nc4U884VR4OKL55GX44hYOfseA3zkVDu 9sIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761582245; x=1762187045; 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=0VY/PgB6ZY1F6rl3mZjPiydGdCarQBX3xemGwBVl/Cw=; b=HbsCVAmlDz9OUt5XlK21w+pk3Irg4kE2PiRbaMkUcXYlq1proHVOfHu59Pz46uW5ZX nd3Y3yo18eVkV7ZT0PI0rJcKuwtzaFO09KcHsTf3Oii8wAN7ZKp5lpfKEDce02JypOvo h225Rz2CxmcZaJ7PilvGYZ2gjkExRMgdXyjE4dvwGaJf6dz/5ShG8cbDIOI1FlmOso3c A/OIruE6B10qwnxYGVbjGLuqjPSRhzEaqnQumbeABqroa2c9VdvpEM+BXQvhFAasbY5u m54UF05zmGojJ2E+xCYPtqnBXKblh3vb2O5oSTNpNtTxmi3pREWnutWZU1A+fOFBxWRQ 3etQ== X-Forwarded-Encrypted: i=1; AJvYcCV9RO/fcgB53PHhjgtf4QtMP6j/YiFPo6yOZM0VTyX2VgRkI5F6Cy+bYmuZkno6x4NcgViGob4=@dpdk.org X-Gm-Message-State: AOJu0YxSVWibB2gyvDbdnDpCVJMXqY4sOTIAhneN+r3WdWzWk1dKQgKN /NZ47WBoDRcC4GET35949msc1K2RCiFOtpBcNl5fppiCCgXtlfts0NOxxEok7oms X-Gm-Gg: ASbGncuywAbsARrHLDy7t+qAfuiSqLKtBojU+4fL0VTm0tobhM90WM+jMT+Oa40e3xb lYTC+W0XU7RJi51xT21HPfM+X7mGhmrsFGXbZlyW8QLfjHKU5U6qAUyGFuqo0AgvJQTd5O1K1UJ 7mXQhfk/mWf3rEmW8tUlNJlarVscclTLfV7PJE6J0cxc9peqUbAHljCqeIEG7XeY125R844mqcC XvEJtvCeYGcTIZezojYHLiqewblcaP3yuhyxUXqw0M1UDpmCDLLPfXtaaGliFNBBNj+i4mscthp KouGoJcGAwe87EOfXqMMyEQ0t2sewg8TMJGObLMkp27y57QUtm8Cv+0P7f7H3CLdTJ12Z4F3mSL Qd9WdxG6RIZGfbS9krSXr4/msJ01b+0DIO5OKP6ffW4ROXQgwzCFiLbewVNocfTiBfYPeSbfbWq YFf0n2hA== X-Google-Smtp-Source: AGHT+IFOqU3i8wQtApyB8qlUDr+kGECr6pRsDmxtrEFz7etw02/Y/bPRkz7NXRz0PECHNiGtyCj0nQ== X-Received: by 2002:a05:600d:8386:b0:46f:b43a:aee1 with SMTP id 5b1f17b1804b1-47717e7b1efmr1059195e9.38.1761582244960; Mon, 27 Oct 2025 09:24:04 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:6fc5:c3bc:147e:832c]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-475dd035e05sm144108015e9.7.2025.10.27.09.24.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 09:24:04 -0700 (PDT) From: luca.boccassi@gmail.com To: Nithinsen Kaithakadan Cc: Akhil Goyal , dpdk stable Subject: patch 'test/crypto: fix mbuf handling' has been queued to stable release 22.11.11 Date: Mon, 27 Oct 2025 16:19:53 +0000 Message-ID: <20251027162001.3710450-75-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027162001.3710450-1-luca.boccassi@gmail.com> References: <20251027162001.3710450-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.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 10/29/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/6a8fd6242932862c080c41232f5b296dc05a59f7 Thanks. Luca Boccassi --- >From 6a8fd6242932862c080c41232f5b296dc05a59f7 Mon Sep 17 00:00:00 2001 From: Nithinsen Kaithakadan Date: Tue, 23 Sep 2025 14:22:54 +0000 Subject: [PATCH] test/crypto: fix mbuf handling [ upstream commit 1ff54c055d95736aae05a40b361427215c318cc1 ] This patch resolves the following mbuf sanity check errors. - updating nb_segs and pkt_len in the head mbuf after freeing intermediate nodes in the chain. - fix incorrect usage of rte_pktmbuf_append by ensuring the head mbuf is passed instead of an intermediate node, allowing proper tail detection and metadata update. Fixes: dc3f6c5347b2 ("test/crypto: fix wireless auth digest segment") Fixes: 43220096d66a ("test/crypto: add PDCP cases for scatter gather") Fixes: dcdd01691f39 ("test/crypto: add GMAC SGL") Fixes: f3dbf94be60c ("app/test: check SGL on QAT") Signed-off-by: Nithinsen Kaithakadan Acked-by: Akhil Goyal --- app/test/test_cryptodev.c | 59 ++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index 8d58510e2d..6dc6dfb9c5 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -3000,6 +3000,8 @@ create_wireless_algo_auth_cipher_operation( uint16_t remaining_off = (auth_offset >> 3) + (auth_len >> 3); struct rte_mbuf *sgl_buf = (op_mode == IN_PLACE ? sym_op->m_src : sym_op->m_dst); + struct rte_mbuf *sgl_buf_head = sgl_buf; + while (remaining_off >= rte_pktmbuf_data_len(sgl_buf)) { remaining_off -= rte_pktmbuf_data_len(sgl_buf); sgl_buf = sgl_buf->next; @@ -3007,11 +3009,18 @@ create_wireless_algo_auth_cipher_operation( /* The last segment should be large enough to hold full digest */ if (sgl_buf->data_len < auth_tag_len) { - rte_pktmbuf_free(sgl_buf->next); - sgl_buf->next = NULL; - TEST_ASSERT_NOT_NULL(rte_pktmbuf_append(sgl_buf, - auth_tag_len - sgl_buf->data_len), - "No room to append auth tag"); + uint16_t next_data_len = 0; + if (sgl_buf->next != NULL) { + next_data_len = sgl_buf->next->data_len; + + rte_pktmbuf_free(sgl_buf->next); + sgl_buf->next = NULL; + sgl_buf_head->nb_segs -= 1; + sgl_buf_head->pkt_len -= next_data_len; + } + TEST_ASSERT_NOT_NULL(rte_pktmbuf_append( + sgl_buf_head, auth_tag_len - sgl_buf->data_len), + "No room to append auth tag"); } sym_op->auth.digest.data = rte_pktmbuf_mtod_offset(sgl_buf, @@ -8871,11 +8880,13 @@ test_pdcp_proto_SGL(int i, int oop, buf_oop = buf_oop->next; memset(rte_pktmbuf_mtod(buf_oop, uint8_t *), 0, rte_pktmbuf_tailroom(buf_oop)); - rte_pktmbuf_append(buf_oop, to_trn); + TEST_ASSERT_NOT_NULL(ut_params->obuf, "Output buffer not initialized"); + TEST_ASSERT_NOT_NULL(rte_pktmbuf_append(ut_params->obuf, to_trn), "Failed to append to mbuf"); } - plaintext = (uint8_t *)rte_pktmbuf_append(buf, + plaintext = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf, to_trn); + TEST_ASSERT_NOT_NULL(plaintext, "Failed to append plaintext"); memcpy(plaintext, input_vec + trn_data, to_trn); trn_data += to_trn; @@ -8904,7 +8915,7 @@ test_pdcp_proto_SGL(int i, int oop, buf_oop = buf_oop->next; memset(rte_pktmbuf_mtod(buf_oop, uint8_t *), 0, rte_pktmbuf_tailroom(buf_oop)); - rte_pktmbuf_append(buf_oop, to_trn); + TEST_ASSERT_NOT_NULL(rte_pktmbuf_append(ut_params->obuf, to_trn), "Failed to append to mbuf"); trn_data += to_trn; } @@ -13426,15 +13437,18 @@ test_AES_GMAC_authentication_SGL(const struct gmac_test_data *tdata, memset(rte_pktmbuf_mtod(buf, uint8_t *), 0, rte_pktmbuf_tailroom(buf)); - plaintext = (uint8_t *)rte_pktmbuf_append(buf, + plaintext = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf, to_trn); + TEST_ASSERT_NOT_NULL(plaintext, "Failed to append plaintext"); memcpy(plaintext, tdata->plaintext.data + trn_data, to_trn); trn_data += to_trn; - if (trn_data == tdata->plaintext.len) - digest_mem = (uint8_t *)rte_pktmbuf_append(buf, + if (trn_data == tdata->plaintext.len) { + digest_mem = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf, tdata->gmac_tag.len); + TEST_ASSERT_NOT_NULL(digest_mem, "Failed to append digest data"); + } } ut_params->ibuf->nb_segs = segs; @@ -14717,23 +14731,28 @@ test_authenticated_encryption_SGL(const struct aead_test_data *tdata, buf_oop = buf_oop->next; memset(rte_pktmbuf_mtod(buf_oop, uint8_t *), 0, rte_pktmbuf_tailroom(buf_oop)); - rte_pktmbuf_append(buf_oop, to_trn); + TEST_ASSERT_NOT_NULL(rte_pktmbuf_append(ut_params->obuf, to_trn), "Failed to append to mbuf"); } - plaintext = (uint8_t *)rte_pktmbuf_append(buf, + plaintext = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf, to_trn); + TEST_ASSERT_NOT_NULL(plaintext, "Failed to append plaintext"); memcpy(plaintext, tdata->plaintext.data + trn_data, to_trn); trn_data += to_trn; if (trn_data == tdata->plaintext.len) { if (oop) { - if (!fragsz_oop) - digest_mem = rte_pktmbuf_append(buf_oop, + if (!fragsz_oop) { + digest_mem = rte_pktmbuf_append(ut_params->obuf, tdata->auth_tag.len); - } else - digest_mem = (uint8_t *)rte_pktmbuf_append(buf, + TEST_ASSERT_NOT_NULL(digest_mem, "Failed to append auth tag"); + } + } else { + digest_mem = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf, tdata->auth_tag.len); + TEST_ASSERT_NOT_NULL(digest_mem, "Failed to append auth tag"); + } } } @@ -14768,16 +14787,18 @@ test_authenticated_encryption_SGL(const struct aead_test_data *tdata, buf_last_oop = buf_oop->next = rte_pktmbuf_alloc(ts_params->mbuf_pool); + TEST_ASSERT_NOT_NULL(buf_oop->next, "Unexpected end of chain"); buf_oop = buf_oop->next; memset(rte_pktmbuf_mtod(buf_oop, uint8_t *), 0, rte_pktmbuf_tailroom(buf_oop)); - rte_pktmbuf_append(buf_oop, to_trn); + TEST_ASSERT_NOT_NULL(rte_pktmbuf_append(ut_params->obuf, to_trn), "Failed to append to mbuf"); trn_data += to_trn; if (trn_data == tdata->plaintext.len) { - digest_mem = rte_pktmbuf_append(buf_oop, + digest_mem = rte_pktmbuf_append(ut_params->obuf, tdata->auth_tag.len); + TEST_ASSERT_NOT_NULL(digest_mem, "Failed to append auth tag"); } } -- 2.47.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-27 15:54:37.508616334 +0000 +++ 0075-test-crypto-fix-mbuf-handling.patch 2025-10-27 15:54:34.859951155 +0000 @@ -1 +1 @@ -From 1ff54c055d95736aae05a40b361427215c318cc1 Mon Sep 17 00:00:00 2001 +From 6a8fd6242932862c080c41232f5b296dc05a59f7 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 1ff54c055d95736aae05a40b361427215c318cc1 ] + @@ -18 +19,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ -index 5229ac2bf6..f092f608a9 100644 +index 8d58510e2d..6dc6dfb9c5 100644 @@ -30 +31 @@ -@@ -3488,6 +3488,8 @@ create_wireless_algo_auth_cipher_operation( +@@ -3000,6 +3000,8 @@ create_wireless_algo_auth_cipher_operation( @@ -39 +40 @@ -@@ -3495,11 +3497,18 @@ create_wireless_algo_auth_cipher_operation( +@@ -3007,11 +3009,18 @@ create_wireless_algo_auth_cipher_operation( @@ -63 +64 @@ -@@ -9795,11 +9804,13 @@ test_pdcp_proto_SGL(int i, int oop, +@@ -8871,11 +8880,13 @@ test_pdcp_proto_SGL(int i, int oop, @@ -79 +80 @@ -@@ -9828,7 +9839,7 @@ test_pdcp_proto_SGL(int i, int oop, +@@ -8904,7 +8915,7 @@ test_pdcp_proto_SGL(int i, int oop, @@ -88 +89 @@ -@@ -15916,15 +15927,18 @@ test_AES_GMAC_authentication_SGL(const struct gmac_test_data *tdata, +@@ -13426,15 +13437,18 @@ test_AES_GMAC_authentication_SGL(const struct gmac_test_data *tdata, @@ -110 +111 @@ -@@ -17223,23 +17237,28 @@ test_authenticated_encryption_SGL(const struct aead_test_data *tdata, +@@ -14717,23 +14731,28 @@ test_authenticated_encryption_SGL(const struct aead_test_data *tdata, @@ -145 +146 @@ -@@ -17274,16 +17293,18 @@ test_authenticated_encryption_SGL(const struct aead_test_data *tdata, +@@ -14768,16 +14787,18 @@ test_authenticated_encryption_SGL(const struct aead_test_data *tdata,