Skip to content

Commit f9613aa

Browse files
Yang YingliangShawn Guo
authored andcommitted
ARM: imx: add missing iounmap()
Commit e76bdfd ("ARM: imx: Added perf functionality to mmdc driver") introduced imx_mmdc_remove(), the mmdc_base need be unmapped in it if config PERF_EVENTS is enabled. If imx_mmdc_perf_init() fails, the mmdc_base also need be unmapped. Fixes: e76bdfd ("ARM: imx: Added perf functionality to mmdc driver") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
1 parent 7e71b85 commit f9613aa

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

arch/arm/mach-imx/mmdc.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ static int imx_mmdc_remove(struct platform_device *pdev)
462462

463463
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
464464
perf_pmu_unregister(&pmu_mmdc->pmu);
465+
iounmap(pmu_mmdc->mmdc_base);
465466
kfree(pmu_mmdc);
466467
return 0;
467468
}
@@ -567,7 +568,11 @@ static int imx_mmdc_probe(struct platform_device *pdev)
567568
val &= ~(1 << BP_MMDC_MAPSR_PSD);
568569
writel_relaxed(val, reg);
569570

570-
return imx_mmdc_perf_init(pdev, mmdc_base);
571+
err = imx_mmdc_perf_init(pdev, mmdc_base);
572+
if (err)
573+
iounmap(mmdc_base);
574+
575+
return err;
571576
}
572577

573578
int imx_mmdc_get_ddr_type(void)

0 commit comments

Comments
 (0)