]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
uio: pruss: fix missing iounmap() in pruss_probe()
authorYang Yingliang <yangyingliang@huawei.com>
Tue, 8 Aug 2023 12:38:27 +0000 (20:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Aug 2023 11:41:55 +0000 (13:41 +0200)
platform_get_irq() is called after ioremap(), if it fails,
iounmap() needs be called in error the path.

Fixes: 2fd84b9b839c ("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>
drivers/uio/uio_pruss.c

index 122c38e2fbbd9397ad9b46b1d790a9583151ef35..77e2dc40488555b56a1abfe6f01688a01869c7c7 100644 (file)
@@ -177,7 +177,7 @@ static int pruss_probe(struct platform_device *pdev)
 
        ret = platform_get_irq(pdev, 0);
        if (ret < 0)
-               goto err_free_ddr_vaddr;
+               goto err_unmap;
 
        gdev->hostirq_start = ret;
        gdev->pintc_base = pdata->pintc_base;
@@ -215,6 +215,7 @@ err_unloop:
        for (i = 0, p = gdev->info; i < cnt; i++, p++) {
                uio_unregister_device(p);
        }
+err_unmap:
        iounmap(gdev->prussio_vaddr);
 err_free_ddr_vaddr:
        dma_free_coherent(dev, extram_pool_sz, gdev->ddr_vaddr,