mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
uio: pruss: fix missing iounmap() in pruss_probe()
platform_get_irq() is called after ioremap(), if it fails,
iounmap() needs be called in error the path.
Fixes: 2fd84b9b83 ("uio: pruss: fix to check return value of platform_get_irq() in pruss_probe()")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20230808123827.560603-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e75850b457
commit
979ca1ca1f
@@ -177,7 +177,7 @@ static int pruss_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
ret = platform_get_irq(pdev, 0);
|
ret = platform_get_irq(pdev, 0);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err_free_ddr_vaddr;
|
goto err_unmap;
|
||||||
|
|
||||||
gdev->hostirq_start = ret;
|
gdev->hostirq_start = ret;
|
||||||
gdev->pintc_base = pdata->pintc_base;
|
gdev->pintc_base = pdata->pintc_base;
|
||||||
@@ -215,6 +215,7 @@ err_unloop:
|
|||||||
for (i = 0, p = gdev->info; i < cnt; i++, p++) {
|
for (i = 0, p = gdev->info; i < cnt; i++, p++) {
|
||||||
uio_unregister_device(p);
|
uio_unregister_device(p);
|
||||||
}
|
}
|
||||||
|
err_unmap:
|
||||||
iounmap(gdev->prussio_vaddr);
|
iounmap(gdev->prussio_vaddr);
|
||||||
err_free_ddr_vaddr:
|
err_free_ddr_vaddr:
|
||||||
dma_free_coherent(dev, extram_pool_sz, gdev->ddr_vaddr,
|
dma_free_coherent(dev, extram_pool_sz, gdev->ddr_vaddr,
|
||||||
|
|||||||
Reference in New Issue
Block a user