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 4DDD54562D; Wed, 17 Jul 2024 05:25:32 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 90FF340B9C; Wed, 17 Jul 2024 05:25:23 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2138.outbound.protection.outlook.com [40.107.96.138]) by mails.dpdk.org (Postfix) with ESMTP id BD5F840BA2 for ; Wed, 17 Jul 2024 05:25:22 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ru74vmbfMRAgp0uSlNkb8c/7BMJKLhBXG27SK+6cIuU72TXnsXYYmF0ctuiemnRa0SUAHnqF3ZkvjwIXFfv/ZHu0pDN+Qa7jF5jIhpsnggs8nHW8DXlwgBApTXxDmZMoqpYfwJ8iWcepN3U7uvF0uY9ZNrbh7b2WogDwv+wKV21IpNxdy3Ro//27hf4Xj7rFT4b3DAN+GdVv/co1xLAhk3XDKtyHBOg5yBRa8UHRJTSami1SgaPVnrsAte3tdYwPOiJ8LQLtmCQvmSzxQStb60q2DuUtCOSqAiV0kvKGF5otFAaf33+S7Gh4r2jYUcXXs7nO/KgYd/GRkEgAscBsng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=0uE+Z8OmnbY39U4kHM8cLHhfVYKrfdlI6G2svtp4vw8=; b=sKTJ/QZs0Iv9+CPtDbB1tFU+uJl5xwRmYNZ2SySrIDlttW9F9zCfIPQGLDTIcFROWvs40O4RGFsWHXZArXjFvctFybsyrv4U3VEQUx7QIqOPrAv+tE0olrILJbyNaLKsH/AT/I3+ZYh/r35iy6BCT+/YnFr3FOpaaaKWL80pqb5XHMMeTxa/U6lEE3Ok9p6+LnoffqFdrsB9H4Vudg4TsPchPryyx8EhOHs/QlAKneOXSnSc+DSi70tUCXrso5xSxvSaagffBN1tm9sXFWKK2j/xCT2coHdOgIol74zu9+Joq8R6HNdYFPeRJBLecfl575w1OOSabTBXxWuTBTD5YQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0uE+Z8OmnbY39U4kHM8cLHhfVYKrfdlI6G2svtp4vw8=; b=IDzxYAnHVYVRF33OWnGXbMJyGKtWIl9pWSqD0Jd52b1hVgE/jhPW5SjiiFkWjpyo936so4IG53PPYaH9Dot3COjO/Aw6YtBikGOptVhyDJ0nLL11OwwUhyRGBvSyQpTt3SuMRkQ3RWd4H3NV092h3ZI5kF/VIrHUk2TcbjyK010= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY3PR13MB4834.namprd13.prod.outlook.com (2603:10b6:a03:36b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.29; Wed, 17 Jul 2024 03:25:18 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%4]) with mapi id 15.20.7762.027; Wed, 17 Jul 2024 03:25:18 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , Chaoyong He , Peng Zhang Subject: [PATCH 2/2] net/nfp: fix AVX2 vector Rx function memory overrun Date: Wed, 17 Jul 2024 11:24:45 +0800 Message-Id: <20240717032445.442348-3-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240717032445.442348-1-chaoyong.he@corigine.com> References: <20240717032445.442348-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR03CA0127.apcprd03.prod.outlook.com (2603:1096:4:91::31) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY3PR13MB4834:EE_ X-MS-Office365-Filtering-Correlation-Id: 9fdaf902-d5ca-4651-ef5d-08dca6101506 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|1800799024|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tvT08ND9C3GI/txxq6f+WNQCBbLbJTpcLhLxJN6Q0EDrM0S/lLdnq7OLho3Z?= =?us-ascii?Q?RPNBTLCz1bnE8P6Yg3VcEsyZCYc7LJm9Y0oHKbHejTeqCJZ66/uPC+VGLqFG?= =?us-ascii?Q?/HtA7nqIvDbXQRK4oN/Rqerz69pCFyw4ace5oQVHSd8NeUXH1W7/Qgw7wz0m?= =?us-ascii?Q?ycRAi6+4knw/olFfdq63TW+mybN4SBviiAuYAE34Sb6gunz6VOQwobRURsQp?= =?us-ascii?Q?VHxFt69ei8lXydqX5ozB4RW2XfXtiv03NmunK3wkKnDMc+ffbKBpZQPjMUfE?= =?us-ascii?Q?gUduiq6fpvqnZX7AY1YLkQkkOfWMl1s7UJ1hZXsW44itUvIcFO2WJGQKyXKu?= =?us-ascii?Q?foaLkr80aljUZEOq+LL+0FlzaYonVTq8EF4JAgmfCYwAFVKC+sqqsAFsUVLO?= =?us-ascii?Q?D/PI5O2CJUquURCbM87oITylMJyDasGjnVsAhQdI11gAfTFheMy68bwiKwMy?= =?us-ascii?Q?CpIveSXi8fJ6YMwlNn9OTr56P9sVne0RHVgUFZG3l+9WeleV8Jhd8A0jJzRy?= =?us-ascii?Q?yGJNqCtJgl51VYxB+RZV85lB/cVlieBRfYphrbn68dtChIm1LZYpRNirebS8?= =?us-ascii?Q?9+b9mSJ5QVYsVLo5CccxcxSL9xtLiQgQJsVTIqrk3gynBnVWqR0tyLpqzYh0?= =?us-ascii?Q?LZK5VBRWU5YW/khB8tv/ZV4BuM/P5LPLkkbGCXJKejt1kkiSynoV5DuqpqW5?= =?us-ascii?Q?I+fUg5Rq0WJeklKeueL1TP1OA7tDhXsT5dQHAHnBEzHprKcGemsDpLxy7tm2?= =?us-ascii?Q?i0aPj9vviTe3f040YCsWllXaEIJJK+3BV7wcqV2NyS1JbjvyeIyIR5WDPWAO?= =?us-ascii?Q?yttPGhWiceqsj62H0BOIyiz7TO597Ebb85WdBZhgckx7wEg2PM8a8YQlPHmF?= =?us-ascii?Q?mmjeMroN4zl2e4Zt1NCFWLM2Kqb0EUyr/xAq7LevfPeDquv2dhgLSjBP6UxV?= =?us-ascii?Q?07N00MN8wT5Cd/aHo7onwZv+Gzj5rogozBXCpYA9ggf80UMyPb9GsaoWT1oE?= =?us-ascii?Q?H86R0uUd0VFVaXL9DOeB45t/zHp/qKvojUZAzyk36tk4l+RsZC1zNRaltIr6?= =?us-ascii?Q?0hHQCbshvmInBCxsb+KwWHwgBdaljh7I8Xb3meK5bGsHi0K59MAM6FtwGKh4?= =?us-ascii?Q?U+96ZjQzrXkNozDd+eAvPtzogfHanGBRn4MlpG0QPurWPXCfd2Lm4XHQDYC2?= =?us-ascii?Q?dBDGSIaZlCTFLBnBT8/ZV0M4HX/u4CTkeIKQ/T2ZslOmDQPw6y1n8VczplpV?= =?us-ascii?Q?zgxwdYl3FZNGclKohjetvkR7bojDsL8J9RwNBY/dJWSo2k8sBroj+GNjiY0p?= =?us-ascii?Q?C2qXY4p0V0D+YCPrf2lKUDCF/0Ovgx+BNpR/HRyA40LORoX4exMU7wYZZMDj?= =?us-ascii?Q?1+g7GkcHtKpZkCrr0yLMtz17lrS3uyi41nVBLshNuMmwFmonAw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(52116014)(1800799024)(376014)(366016)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HTqJz3mtRdaURANt2SqVOnRIY9BErEv/55bP5NVc2ASxU5ibR65e7xrJgHox?= =?us-ascii?Q?g/DUEws1TuUWA/o3/2Caq/VQIm8YfRGKG1+pikjxHg23EmtJgHx8Ox/1fMgv?= =?us-ascii?Q?MWxSB89lW3QjEtMY9ht8w7k/uxcGXDI2OUVdHB0akYtLkh4XIO3cA6dKW4MG?= =?us-ascii?Q?JJ2x5kmbUDV/el3Du+PVHeRTmdZ4UtUzrtXGZ3gSCcLAnGcN8GHzIojBfWzi?= =?us-ascii?Q?I7lb60kxizVLMycOae3KtgVFG9EUf7KfMz+ajqg+V+ZEsE+BuHb5IU130UDM?= =?us-ascii?Q?E4ZYPo8J99OgNlLYEJMPdjn+hncL5lcuE60svsOWPnL58f3cR7WbMkhwFNFF?= =?us-ascii?Q?FIrt6cUo9ziXB1iCSkrEkxO1mptt//TEnNPILc+kSDNmknt5N+I8GMNtl57B?= =?us-ascii?Q?t4RimuSJPtZ777YpKCwBRx5EMXGIuBD0wk9erFIGLud/kYHPU599WpYVvcNA?= =?us-ascii?Q?UW1Yi6TY34xC3q0sgsHzL29bHfeHsjuu7shz6F/em30ocu8nssMP1SAhPP7G?= =?us-ascii?Q?y/AL5iok3qzXdOIgWEKEgaLtyV4JNS9kfjvFCEhu4qXmnrzuLj4SgXGCaYpF?= =?us-ascii?Q?pbP+l6RfwrZ2guwmXwH/f4zDGbDlo4QFMuycB11IHToeq3KfcUpHuZ53mk1t?= =?us-ascii?Q?EG8xgI2zmboRYHwG6Q6AXvG0xPw3gZ7rInCeL439qIb2HtXt9k6QboP3Lf5M?= =?us-ascii?Q?nUj8vV3w/+k+CV0nY2O2tcPs3EGIPshJ0+OazCIn4+Ipy54fZd1M6SqAXDY6?= =?us-ascii?Q?s8/Yea+9W27c8byHKVyxM8gARZALaKgkltzxQS64k5jBXfQX97muVdsVo0GX?= =?us-ascii?Q?hWCthk2dlFVFXEeaeqZQ3SfbvC3DhPK41KnJiWHD88VRBj382ATZJIeLcfvm?= =?us-ascii?Q?gAfKN6wv/+kGgIO27MosIE2TsotzpnoAoCk368wKzQH5J73Kou7a+G86PrU1?= =?us-ascii?Q?ztOxl3clebUWBJU3CZ+3nBxASBjfy+VznEt5epKX3mWpzWF2XdiFhpuBXfcG?= =?us-ascii?Q?cx4TbbKS6Kb2pUS3UmpjJlGGxVapprQUGq4KkY982Ctn6ekAvk1203OlLh1S?= =?us-ascii?Q?OycT5aJs+wEIs/zTFytHHt8YqUKFmmUbJpscCKfFTJvZYL2Clf9tzwJjcSpL?= =?us-ascii?Q?GL0R1anDR1dIWmSb6zGLRiOchMcBFZeS3vtugJ2NAqoKuJ+KoaSVp2auO7O/?= =?us-ascii?Q?XF5vzO3Nw2jcXf8xuuqCQVsGVOt/F0G5Kaa8JWF/8x+2fJveqURS/6lVHAQt?= =?us-ascii?Q?F/XOJOoKiOjhudk1D8NvJX3JILbuJ9J9lYIEE3aUlQPvQfZoArj1mcWdfmvG?= =?us-ascii?Q?lPpZZ9aPkkxqJJNT+85vdEGJgAJwhEbrEdXHtoS+D5eK6kFM5x+bLJ7TquhN?= =?us-ascii?Q?WmWNNUdCQFrkqsh4aPmt4RStIQXFRDW3m/dsIHTRML4zw1B+hz56WYVawxpS?= =?us-ascii?Q?g5d2EpsfYUQ+1AuLb5b87lh0y9mz2CDwj+DON/GSWg941kIU8r/blhjcmPgC?= =?us-ascii?Q?nXwmjNE/HOW6XsXV1grPNdFhvzTX05P/gepR8BW4mtOj8Ccexje4qDmM6Bbk?= =?us-ascii?Q?Q9mmcsAjJg6HlJhgWrXDqNMGlFu8NfSG/ffEi46Uqwh4IwZCS09smc94qMa2?= =?us-ascii?Q?jQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9fdaf902-d5ca-4651-ef5d-08dca6101506 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2024 03:25:18.4053 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uJJMGlcNDRk4ZEsrYXTaId5PkK2GKWrg4WJf55HQejhnyVrTB3phfm2C4hedzE2pYn3Ig/ESYK5T2crnXF8Tz8UKKgHsvWwZuqmXi+9g40w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR13MB4834 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 From: Long Wu CI found that the 'rxb' in 'nfp_net_vec_avx2_recv_pkts()' may cause memory overrun. Coverity issue:439964 Fixes: b67555307628 ("net/nfp: add AVX2 Rx") Signed-off-by: Long Wu Reviewed-by: Chaoyong He Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_rxtx_vec_avx2.c | 41 ++++++++++++++++++----------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/drivers/net/nfp/nfp_rxtx_vec_avx2.c b/drivers/net/nfp/nfp_rxtx_vec_avx2.c index 508ec7faa5..2a033133a1 100644 --- a/drivers/net/nfp/nfp_rxtx_vec_avx2.c +++ b/drivers/net/nfp/nfp_rxtx_vec_avx2.c @@ -117,29 +117,48 @@ nfp_vec_avx2_recv_set_rxpkt1(struct nfp_net_rxq *rxq, nfp_net_rx_cksum(rxq, rxds, rx_pkt); } -static inline void +static inline int nfp_vec_avx2_recv1(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxds, - struct rte_mbuf *rxb, + struct rte_mbuf **rxb, struct rte_mbuf *rx_pkt) { + /* Allocate a new mbuf into the software ring. */ + if (rte_pktmbuf_alloc_bulk(rxq->mem_pool, rxb, 1) < 0) { + PMD_RX_LOG(DEBUG, "RX mbuf alloc failed port_id=%u queue_id=%hu", + rxq->port_id, rxq->qidx); + nfp_net_mbuf_alloc_failed(rxq); + return -ENOMEM; + } + nfp_vec_avx2_recv_set_rxpkt1(rxq, rxds, rx_pkt); - nfp_vec_avx2_recv_set_des1(rxq, rxds, rxb); + nfp_vec_avx2_recv_set_des1(rxq, rxds, *rxb); + + return 0; } -static inline void +static inline int nfp_vec_avx2_recv4(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxds, struct rte_mbuf **rxb, struct rte_mbuf **rx_pkts) { + /* Allocate 4 new mbufs into the software ring. */ + if (rte_pktmbuf_alloc_bulk(rxq->mem_pool, rxb, 4) < 0) { + PMD_RX_LOG(DEBUG, "RX mbuf bulk alloc failed port_id=%u queue_id=%hu", + rxq->port_id, rxq->qidx); + return -ENOMEM; + } + nfp_vec_avx2_recv_set_rxpkt1(rxq, rxds, rx_pkts[0]); nfp_vec_avx2_recv_set_rxpkt1(rxq, rxds + 1, rx_pkts[1]); nfp_vec_avx2_recv_set_rxpkt1(rxq, rxds + 2, rx_pkts[2]); nfp_vec_avx2_recv_set_rxpkt1(rxq, rxds + 3, rx_pkts[3]); nfp_vec_avx2_recv_set_des4(rxq, rxds, rxb); + + return 0; } static inline bool @@ -215,15 +234,8 @@ nfp_net_vec_avx2_recv_pkts(void *rx_queue, _mm_storel_epi64((void *)&rx_pkts[avail], _mm_loadu_si128((void *)rxb)); - /* Allocate a new mbuf into the software ring. */ - if (rte_pktmbuf_alloc_bulk(rxq->mem_pool, rxb, 1) < 0) { - PMD_RX_LOG(DEBUG, "RX mbuf alloc failed port_id=%u queue_id=%hu", - rxq->port_id, rxq->qidx); - nfp_net_mbuf_alloc_failed(rxq); + if (nfp_vec_avx2_recv1(rxq, rxds, rxb, rx_pkts[avail]) != 0) goto recv_end; - } - - nfp_vec_avx2_recv1(rxq, rxds, *rxb, rx_pkts[avail]); avail++; nb_hold++; @@ -237,14 +249,11 @@ nfp_net_vec_avx2_recv_pkts(void *rx_queue, _mm256_storeu_si256((void *)&rx_pkts[avail], _mm256_loadu_si256((void *)rxb)); - /* Allocate 4 new mbufs into the software ring. */ - if (rte_pktmbuf_alloc_bulk(rxq->mem_pool, rxb, 4) < 0) { + if (nfp_vec_avx2_recv4(rxq, rxds, rxb, &rx_pkts[avail]) != 0) { burst_receive = false; continue; } - nfp_vec_avx2_recv4(rxq, rxds, rxb, &rx_pkts[avail]); - avail += 4; nb_hold += 4; } -- 2.39.1