diff mbox series

clk: at91: check pmc node status before registering syscore ops

Message ID 20210913082633.110168-1-clement.leger@bootlin.com (mailing list archive)
State Accepted, archived
Headers show
Series clk: at91: check pmc node status before registering syscore ops | expand

Commit Message

Clément Léger Sept. 13, 2021, 8:26 a.m. UTC
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>
---
 drivers/clk/at91/pmc.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Nicolas Ferre Sept. 13, 2021, 10:06 a.m. UTC | #1
On 13/09/2021 at 10:26, Clément Léger wrote:
> 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>

Yes, indeed,
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

Thanks, best regards,
   Nicolas

> ---
>   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 20ee9dccee78..b40035b011d0 100644
> --- a/drivers/clk/at91/pmc.c
> +++ b/drivers/clk/at91/pmc.c
> @@ -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))
> --
> 2.33.0
>
Claudiu Beznea Sept. 13, 2021, 1:38 p.m. UTC | #2
On 13.09.2021 11:26, Clément Léger wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> 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>

Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>

> ---
>  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 20ee9dccee78..b40035b011d0 100644
> --- a/drivers/clk/at91/pmc.c
> +++ b/drivers/clk/at91/pmc.c
> @@ -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))
> --
> 2.33.0
>
Stephen Boyd Sept. 14, 2021, 10:03 p.m. UTC | #3
Quoting Clement Leger (2021-09-13 01:26:33)
> 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: Clement Leger <clement.leger@bootlin.com>

Any Fixes tag?
Clément Léger Sept. 15, 2021, 6:15 a.m. UTC | #4
Le Tue, 14 Sep 2021 15:03:01 -0700,
Stephen Boyd <sboyd@kernel.org> a écrit :

> Quoting Clement Leger (2021-09-13 01:26:33)
> > 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: Clement Leger <clement.leger@bootlin.com>  
> 
> Any Fixes tag?

Since this was present from the start of the implementation, I think it
should be the following:

Fixes: b3b02eac33ed ("clk: at91: Add sama5d2 suspend/resume")
Stephen Boyd Oct. 8, 2021, 3:48 a.m. UTC | #5
Quoting Clément Léger (2021-09-13 01:26:33)
> 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>
> ---

Applied to clk-next
diff mbox series

Patch

diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c
index 20ee9dccee78..b40035b011d0 100644
--- a/drivers/clk/at91/pmc.c
+++ b/drivers/clk/at91/pmc.c
@@ -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))