]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mtd: hyperbus: rpc-if: Fix RPM imbalance in probe error path
authorGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 17 Jun 2022 09:26:51 +0000 (11:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:41:38 +0000 (14:41 +0200)
[ Upstream commit c223a38d62e57aa60a890ea7247e3c58a54478e6 ]

If rpcif_hw_init() fails, Runtime PM is left enabled.

Fixes: b04cc0d912eb80d3 ("memory: renesas-rpc-if: Add support for RZ/G2L")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/f3070e1af480cb252ae183d479a593dbbf947685.1655457790.git.geert+renesas@glider.be
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mtd/hyperbus/rpc-if.c

index 6e08ec1d4f098c806627fd75ace18ede5ad6e31d..b70d259e48a7c7282e596036e64d3d28e61137b5 100644 (file)
@@ -134,7 +134,7 @@ static int rpcif_hb_probe(struct platform_device *pdev)
 
        error = rpcif_hw_init(&hyperbus->rpc, true);
        if (error)
-               return error;
+               goto out_disable_rpm;
 
        hyperbus->hbdev.map.size = hyperbus->rpc.size;
        hyperbus->hbdev.map.virt = hyperbus->rpc.dirmap;
@@ -145,8 +145,12 @@ static int rpcif_hb_probe(struct platform_device *pdev)
        hyperbus->hbdev.np = of_get_next_child(pdev->dev.parent->of_node, NULL);
        error = hyperbus_register_device(&hyperbus->hbdev);
        if (error)
-               rpcif_disable_rpm(&hyperbus->rpc);
+               goto out_disable_rpm;
+
+       return 0;
 
+out_disable_rpm:
+       rpcif_disable_rpm(&hyperbus->rpc);
        return error;
 }