diff mbox series

clk: at91: fix count of periph clocks passed to pmc_data_allocate

Message ID 20210609080145.44226-1-clement.leger@bootlin.com (mailing list archive)
State New, archived
Headers show
Series clk: at91: fix count of periph clocks passed to pmc_data_allocate | expand

Commit Message

Clément Léger June 9, 2021, 8:01 a.m. UTC
When allocating clk_hw structure, only the periph32 clocks are considered.
Since sama5d2_periphck are also added to the phws there is currently an
out of bound write. Fix this by adding the count of periphck to periph32ck.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
 drivers/clk/at91/sama5d2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alexandre Belloni June 9, 2021, 8:31 a.m. UTC | #1
hi,

Subject should have been:
clk: at91: sama5d2: fix count of periph clocks passed to pmc_data_allocate



On 09/06/2021 10:01:44+0200, Clément Léger wrote:
> When allocating clk_hw structure, only the periph32 clocks are considered.
> Since sama5d2_periphck are also added to the phws there is currently an
> out of bound write. Fix this by adding the count of periphck to periph32ck.
> 
> Signed-off-by: Clément Léger <clement.leger@bootlin.com>
Fixes: a2038077de9a ("clk: at91: add sama5d2 PMC driver")

> ---
>  drivers/clk/at91/sama5d2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c
> index 3d1f78176c3e..663b73a032ee 100644
> --- a/drivers/clk/at91/sama5d2.c
> +++ b/drivers/clk/at91/sama5d2.c
> @@ -170,7 +170,7 @@ static void __init sama5d2_pmc_setup(struct device_node *np)
>  
>  	sama5d2_pmc = pmc_data_allocate(PMC_AUDIOPLLCK + 1,
>  					nck(sama5d2_systemck),
> -					nck(sama5d2_periph32ck),
> +					nck(sama5d2_periphck) + nck(sama5d2_periph32ck),
>  					nck(sama5d2_gck), 3);
>  	if (!sama5d2_pmc)
>  		return;
> -- 
> 2.32.0
>
Clément Léger July 8, 2021, 2:13 p.m. UTC | #2
Hi,

Le Wed, 9 Jun 2021 10:31:01 +0200,
Alexandre Belloni <alexandre.belloni@bootlin.com> a écrit :

> hi,
> 
> Subject should have been:
> clk: at91: sama5d2: fix count of periph clocks passed to
> pmc_data_allocate
> 

This patch can actually be discarded since it won't fix allocation at
all but will just allocate more data than needed since nck already
returns the max .id field of the periph array.

> 
> 
> On 09/06/2021 10:01:44+0200, Clément Léger wrote:
> > When allocating clk_hw structure, only the periph32 clocks are
> > considered. Since sama5d2_periphck are also added to the phws there
> > is currently an out of bound write. Fix this by adding the count of
> > periphck to periph32ck.
> > 
> > Signed-off-by: Clément Léger <clement.leger@bootlin.com>  
> Fixes: a2038077de9a ("clk: at91: add sama5d2 PMC driver")
> 
> > ---
> >  drivers/clk/at91/sama5d2.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c
> > index 3d1f78176c3e..663b73a032ee 100644
> > --- a/drivers/clk/at91/sama5d2.c
> > +++ b/drivers/clk/at91/sama5d2.c
> > @@ -170,7 +170,7 @@ static void __init sama5d2_pmc_setup(struct
> > device_node *np) 
> >  	sama5d2_pmc = pmc_data_allocate(PMC_AUDIOPLLCK + 1,
> >  					nck(sama5d2_systemck),
> > -					nck(sama5d2_periph32ck),
> > +					nck(sama5d2_periphck) +
> > nck(sama5d2_periph32ck), nck(sama5d2_gck), 3);
> >  	if (!sama5d2_pmc)
> >  		return;
> > -- 
> > 2.32.0
> >   
>
diff mbox series

Patch

diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c
index 3d1f78176c3e..663b73a032ee 100644
--- a/drivers/clk/at91/sama5d2.c
+++ b/drivers/clk/at91/sama5d2.c
@@ -170,7 +170,7 @@  static void __init sama5d2_pmc_setup(struct device_node *np)
 
 	sama5d2_pmc = pmc_data_allocate(PMC_AUDIOPLLCK + 1,
 					nck(sama5d2_systemck),
-					nck(sama5d2_periph32ck),
+					nck(sama5d2_periphck) + nck(sama5d2_periph32ck),
 					nck(sama5d2_gck), 3);
 	if (!sama5d2_pmc)
 		return;