| From 5483e315127960595e3a5d026e4bc09638376a32 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 13 Sep 2021 10:26:33 +0200 |
| Subject: clk: at91: check pmc node status before registering syscore ops |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Clément Léger <clement.leger@bootlin.com> |
| |
| [ Upstream commit c405f5c15e9f6094f2fa1658e73e56f3058e2122 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/clk/at91/pmc.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c |
| index b71515acdec1f..976ca41e9157e 100644 |
| --- a/drivers/clk/at91/pmc.c |
| +++ b/drivers/clk/at91/pmc.c |
| @@ -275,6 +275,11 @@ static int __init pmc_register_ops(void) |
| |
| np = of_find_matching_node(NULL, sama5d2_pmc_dt_ids); |
| |
| + if (!of_device_is_available(np)) { |
| + of_node_put(np); |
| + return -ENODEV; |
| + } |
| + |
| pmcreg = device_node_to_regmap(np); |
| if (IS_ERR(pmcreg)) |
| return PTR_ERR(pmcreg); |
| -- |
| 2.33.0 |
| |