clk: at91: check pmc node status before registering syscore ops
authorClément Léger <clement.leger@bootlin.com>
Mon, 13 Sep 2021 08:26:33 +0000 (10:26 +0200)
committerStephen Boyd <sboyd@kernel.org>
Fri, 8 Oct 2021 03:47:47 +0000 (20:47 -0700)
Currently, at91 pmc driver always register the syscore_ops whatever
the status of the pmc node that has been found. When set as secure
and disabled, the pmc should not be accessed or this will generate
abort exceptions.
To avoid this, add a check on node availability before registering
the syscore operations.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
Link: https://lore.kernel.org/r/20210913082633.110168-1-clement.leger@bootlin.com
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Fixes: b3b02eac33ed ("clk: at91: Add sama5d2 suspend/resume")
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/at91/pmc.c

index 20ee9dccee78792678a6839b51d5aec95525d7f8..b40035b011d0aeb99c3752a5cf9cabfce8560949 100644 (file)
@@ -267,6 +267,11 @@ static int __init pmc_register_ops(void)
        if (!np)
                return -ENODEV;
 
+       if (!of_device_is_available(np)) {
+               of_node_put(np);
+               return -ENODEV;
+       }
+
        pmcreg = device_node_to_regmap(np);
        of_node_put(np);
        if (IS_ERR(pmcreg))