Hello Kunwu,
On 21.11.23 10:25, Kunwu Chan wrote:
devm_kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure. Ensure the allocation was successful
by checking the pointer validity.
Fixes: ebeb49f43c89 ("ARM: imx: Call ida_simple_remove() for ida_simple_get")
This commit only moves the allocation around, but it didn't introduce it.
Please reference the first commit that added the allocation.
Signed-off-by: Kunwu Chan <chentao@xxxxxxxxxx>
---
arch/arm/mach-imx/mmdc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c
index 2157493b78a9..7c471d6a851d 100644
--- a/arch/arm/mach-imx/mmdc.c
+++ b/arch/arm/mach-imx/mmdc.c
@@ -501,6 +501,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
name = devm_kasprintf(&pdev->dev,
GFP_KERNEL, "mmdc%d", ret);
+ if (!name) {
+ ret = -ENOMEM;
+ goto pmu_free;
Cleanup is incomplete if you goto pmu_free, e.g. ida_simple_remove()
isn't called. pmu_register_err does too much cleanup, so you'll need
to add a new cleanup label.
Cheers,
Ahmad
+ }
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;