DPDK patches and discussions
 help / color / mirror / Atom feed
From: Srikanth Yalavarthi <syalavarthi@marvell.com>
To: Srikanth Yalavarthi <syalavarthi@marvell.com>,
	Prince Takkar <ptakkar@marvell.com>,
	Shivah Shankar S <sshankarnara@marvell.com>
Cc: <dev@dpdk.org>, <aprabhu@marvell.com>, <pshukla@marvell.com>
Subject: [PATCH v3 3/8] ml/cnxk: add pointer check after memory allocation
Date: Thu, 16 Mar 2023 14:28:59 -0700	[thread overview]
Message-ID: <20230316212904.9318-4-syalavarthi@marvell.com> (raw)
In-Reply-To: <20230316212904.9318-1-syalavarthi@marvell.com>

Added checks for null pointers after memory allocation. Issues
were reported by klocwork static analysis tool.

Fixes: 515e3608c741 ("ml/cnxk: configure OCM page size")
Fixes: 4ff4ab8e1a20 ("ml/cnxk: support extended statistics")

Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
---
 drivers/ml/cnxk/cn10k_ml_ocm.c | 10 +++++++++-
 drivers/ml/cnxk/cn10k_ml_ops.c | 10 ++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/drivers/ml/cnxk/cn10k_ml_ocm.c b/drivers/ml/cnxk/cn10k_ml_ocm.c
index 1ea45b5b60..b9211b50a8 100644
--- a/drivers/ml/cnxk/cn10k_ml_ocm.c
+++ b/drivers/ml/cnxk/cn10k_ml_ocm.c
@@ -268,8 +268,12 @@ cn10k_ml_ocm_tilemask_find(struct rte_ml_dev *dev, uint8_t num_tiles, uint16_t w
 		search_end_tile = start_tile;
 	}
 
-	/* nibbles + prefix '0x' */
+	/* allocate for local ocm mask */
 	local_ocm_mask = rte_zmalloc("local_ocm_mask", mldev->ocm.mask_words, RTE_CACHE_LINE_SIZE);
+	if (local_ocm_mask == NULL) {
+		plt_err("Unable to allocate memory for local_ocm_mask");
+		return -1;
+	}
 
 	tile_start = search_start_tile;
 start_search:
@@ -494,6 +498,10 @@ cn10k_ml_ocm_print(struct rte_ml_dev *dev, FILE *fp)
 
 	/* nibbles + prefix '0x' */
 	str = rte_zmalloc("ocm_mask_str", mldev->ocm.num_pages / 4 + 2, RTE_CACHE_LINE_SIZE);
+	if (str == NULL) {
+		plt_err("Unable to allocate memory for ocm_mask_str");
+		return;
+	}
 
 	fprintf(fp, "OCM State:\n");
 	for (tile_id = 0; tile_id < ocm->num_tiles; tile_id++) {
diff --git a/drivers/ml/cnxk/cn10k_ml_ops.c b/drivers/ml/cnxk/cn10k_ml_ops.c
index bf9409ad10..8d31276e8c 100644
--- a/drivers/ml/cnxk/cn10k_ml_ops.c
+++ b/drivers/ml/cnxk/cn10k_ml_ops.c
@@ -789,6 +789,11 @@ cn10k_ml_dev_configure(struct rte_ml_dev *dev, const struct rte_ml_dev_config *c
 	/* Allocate memory for ocm_mask */
 	ocm->ocm_mask =
 		rte_zmalloc("ocm_mask", ocm->mask_words * ocm->num_tiles, RTE_CACHE_LINE_SIZE);
+	if (ocm->ocm_mask == NULL) {
+		plt_err("Unable to allocate memory for OCM mask");
+		ret = -ENOMEM;
+		goto error;
+	}
 
 	for (tile_id = 0; tile_id < ocm->num_tiles; tile_id++) {
 		ocm->tile_ocm_info[tile_id].ocm_mask = ocm->ocm_mask + tile_id * ocm->mask_words;
@@ -1107,6 +1112,11 @@ cn10k_ml_dev_xstats_by_name_get(struct rte_ml_dev *dev, const char *name, uint16
 	num_xstats = PLT_DIM(cn10k_ml_model_xstats_table) * mldev->nb_models_loaded;
 	xstats_map = rte_zmalloc("cn10k_ml_xstats_map",
 				 sizeof(struct rte_ml_dev_xstats_map) * num_xstats, 0);
+	if (xstats_map == NULL) {
+		plt_err("Unable to allocate memory for cn10k_ml_xstats_map");
+		return -ENOMEM;
+	}
+
 	cn10k_ml_dev_xstats_names_get(dev, xstats_map, num_xstats);
 
 	cn10k_ml_dev_info_get(dev, &dev_info);
-- 
2.17.1


  parent reply	other threads:[~2023-03-16 21:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-15 13:54 [PATCH 1/1] ml/cnxk: fix multiple coverity issues Srikanth Yalavarthi
2023-03-16  9:33 ` [PATCH v2 " Srikanth Yalavarthi
2023-03-16 17:00   ` Thomas Monjalon
2023-03-16 17:02     ` [EXT] " Srikanth Yalavarthi
2023-03-16 17:07       ` Thomas Monjalon
2023-03-16 21:28 ` [PATCH v3 0/8] Fixes to ml/cnxk driver Srikanth Yalavarthi
2023-03-16 21:28   ` [PATCH v3 1/8] ml/cnxk: fix evaluation order violation issues Srikanth Yalavarthi
2023-03-16 21:28   ` [PATCH v3 2/8] ml/cnxk: fix potential division by zero Srikanth Yalavarthi
2023-03-16 21:28   ` Srikanth Yalavarthi [this message]
2023-03-16 21:29   ` [PATCH v3 4/8] ml/cnxk: remove logically dead code Srikanth Yalavarthi
2023-03-16 21:29   ` [PATCH v3 5/8] ml/cnxk: fix potential memory leak in xstats Srikanth Yalavarthi
2023-03-16 21:29   ` [PATCH v3 6/8] ml/cnxk: check for null pointer before dereference Srikanth Yalavarthi
2023-03-16 21:29   ` [PATCH v3 7/8] ml/cnxk: avoid variable name reuse in a function Srikanth Yalavarthi
2023-03-16 21:29   ` [PATCH v3 8/8] ml/cnxk: reduce levels of nested variables access Srikanth Yalavarthi
2023-03-19 19:01   ` [PATCH v3 0/8] Fixes to ml/cnxk driver Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230316212904.9318-4-syalavarthi@marvell.com \
    --to=syalavarthi@marvell.com \
    --cc=aprabhu@marvell.com \
    --cc=dev@dpdk.org \
    --cc=pshukla@marvell.com \
    --cc=ptakkar@marvell.com \
    --cc=sshankarnara@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).