From nobody Mon Dec 29 02:49:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5F57C4167B for ; Fri, 1 Dec 2023 05:55:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377579AbjLAFzd (ORCPT ); Fri, 1 Dec 2023 00:55:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229808AbjLAFza (ORCPT ); Fri, 1 Dec 2023 00:55:30 -0500 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AB5CF2; Thu, 30 Nov 2023 21:55:32 -0800 (PST) X-UUID: af621b157147467a8b72dd521f25fb77-20231201 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.33,REQID:4370d4bb-2196-4939-a7ad-15607adacd4b,IP:5,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:-10 X-CID-INFO: VERSION:1.1.33,REQID:4370d4bb-2196-4939-a7ad-15607adacd4b,IP:5,URL :0,TC:0,Content:0,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:-10 X-CID-META: VersionHash:364b77b,CLOUDID:abcb0696-10ce-4e4b-85c2-c9b5229ff92b,B ulkID:231201135519P328HBSD,BulkQuantity:0,Recheck:0,SF:66|38|24|17|19|44|1 02,TC:nil,Content:0,EDM:-3,IP:-2,URL:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil ,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD,TF_CID_SPAM_FSI, TF_CID_SPAM_ULN X-UUID: af621b157147467a8b72dd521f25fb77-20231201 X-User: chentao@kylinos.cn Received: from vt.. [(116.128.244.169)] by mailgw (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1806735794; Fri, 01 Dec 2023 13:55:17 +0800 From: Kunwu Chan To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, vadimp@nvidia.com, jdelvare@suse.com, linux@roeck-us.net, shravankr@nvidia.com, jiri@resnulli.us Cc: kunwu.chan@hotmail.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Kunwu Chan Subject: [PATCH v2] platform/mellanox: Add some null/error pointer checks to mlxbf-pmc.c Date: Fri, 1 Dec 2023 13:54:47 +0800 Message-Id: <20231201055447.2356001-1-chentao@kylinos.cn> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org devm_kasprintf() returns a pointer to dynamically allocated memory which can be NULL upon failure. devm_hwmon_device_register_with_groups return a error pointer upon failure. Compile-tested only. Fixes: 1a218d312e65 ("platform/mellanox: mlxbf-pmc: Add Mellanox BlueField = PMC driver") Suggested-by: Ilpo J=C3=A4rvinen Suggested-by: Vadim Pasternak Signed-off-by: Kunwu Chan Reviewed-by: Vadim Pasternak --- drivers/platform/mellanox/mlxbf-pmc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/platform/mellanox/mlxbf-pmc.c b/drivers/platform/mella= nox/mlxbf-pmc.c index 0b427fc24a96..1dd84c7a79de 100644 --- a/drivers/platform/mellanox/mlxbf-pmc.c +++ b/drivers/platform/mellanox/mlxbf-pmc.c @@ -1771,6 +1771,8 @@ static int mlxbf_pmc_init_perftype_counter(struct dev= ice *dev, int blk_num) attr->dev_attr.show =3D mlxbf_pmc_event_list_show; attr->nr =3D blk_num; attr->dev_attr.attr.name =3D devm_kasprintf(dev, GFP_KERNEL, "event_list"= ); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[i] =3D &attr->dev_attr.attr; attr =3D NULL; =20 @@ -1784,6 +1786,8 @@ static int mlxbf_pmc_init_perftype_counter(struct dev= ice *dev, int blk_num) attr->nr =3D blk_num; attr->dev_attr.attr.name =3D devm_kasprintf(dev, GFP_KERNEL, "enable"); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[++i] =3D &attr->dev_attr.attr; attr =3D NULL; } @@ -1810,6 +1814,8 @@ static int mlxbf_pmc_init_perftype_counter(struct dev= ice *dev, int blk_num) attr->nr =3D blk_num; attr->dev_attr.attr.name =3D devm_kasprintf(dev, GFP_KERNEL, "counter%d", j); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[++i] =3D &attr->dev_attr.attr; attr =3D NULL; =20 @@ -1821,6 +1827,8 @@ static int mlxbf_pmc_init_perftype_counter(struct dev= ice *dev, int blk_num) attr->nr =3D blk_num; attr->dev_attr.attr.name =3D devm_kasprintf(dev, GFP_KERNEL, "event%d", j); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[++i] =3D &attr->dev_attr.attr; attr =3D NULL; } @@ -1853,6 +1861,8 @@ static int mlxbf_pmc_init_perftype_reg(struct device = *dev, int blk_num) attr->nr =3D blk_num; attr->dev_attr.attr.name =3D devm_kasprintf(dev, GFP_KERNEL, events[j].evt_name); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[i] =3D &attr->dev_attr.attr; attr =3D NULL; i++; @@ -1882,6 +1892,8 @@ static int mlxbf_pmc_create_groups(struct device *dev= , int blk_num) pmc->block[blk_num].block_attr_grp.attrs =3D pmc->block[blk_num].block_at= tr; pmc->block[blk_num].block_attr_grp.name =3D devm_kasprintf( dev, GFP_KERNEL, pmc->block_name[blk_num]); + if (!pmc->block[blk_num].block_attr_grp.name) + return -ENOMEM; pmc->groups[pmc->group_num] =3D &pmc->block[blk_num].block_attr_grp; pmc->group_num++; =20 @@ -2063,6 +2075,8 @@ static int mlxbf_pmc_probe(struct platform_device *pd= ev) =20 pmc->hwmon_dev =3D devm_hwmon_device_register_with_groups( dev, "bfperf", pmc, pmc->groups); + if (IS_ERR(pmc->hwmon_dev)) + return PTR_ERR(pmc->hwmon_dev); platform_set_drvdata(pdev, pmc); =20 return 0; --=20 2.34.1