[PATCH 4.9 166/310] clk: at91: fix clk-generated parenting

2018-04-11 Thread Greg Kroah-Hartman
4.9-stable review patch.  If anyone has any objections, please let me know.

--

From: Alexandre Belloni 


[ Upstream commit 8e56133e5c7b7a7a97f6a92d92f664d5ecd30745 ]

clk_generated_startup is called after clk_hw_register. So the first call to
get_parent will not have the correct value (i.e. 0) and because this is
cached, it may never be updated.

Signed-off-by: Alexandre Belloni 
Fixes: df70aeef6083 ("clk: at91: add generated clock driver")
Signed-off-by: Stephen Boyd 
Signed-off-by: Sasha Levin 
Signed-off-by: Greg Kroah-Hartman 
---
 drivers/clk/at91/clk-generated.c |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/clk/at91/clk-generated.c
+++ b/drivers/clk/at91/clk-generated.c
@@ -260,13 +260,12 @@ at91_clk_register_generated(struct regma
gck->lock = lock;
gck->range = *range;
 
+   clk_generated_startup(gck);
hw = >hw;
ret = clk_hw_register(NULL, >hw);
if (ret) {
kfree(gck);
hw = ERR_PTR(ret);
-   } else
-   clk_generated_startup(gck);
 
return hw;
 }




[PATCH 4.9 166/310] clk: at91: fix clk-generated parenting

2018-04-11 Thread Greg Kroah-Hartman
4.9-stable review patch.  If anyone has any objections, please let me know.

--

From: Alexandre Belloni 


[ Upstream commit 8e56133e5c7b7a7a97f6a92d92f664d5ecd30745 ]

clk_generated_startup is called after clk_hw_register. So the first call to
get_parent will not have the correct value (i.e. 0) and because this is
cached, it may never be updated.

Signed-off-by: Alexandre Belloni 
Fixes: df70aeef6083 ("clk: at91: add generated clock driver")
Signed-off-by: Stephen Boyd 
Signed-off-by: Sasha Levin 
Signed-off-by: Greg Kroah-Hartman 
---
 drivers/clk/at91/clk-generated.c |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/clk/at91/clk-generated.c
+++ b/drivers/clk/at91/clk-generated.c
@@ -260,13 +260,12 @@ at91_clk_register_generated(struct regma
gck->lock = lock;
gck->range = *range;
 
+   clk_generated_startup(gck);
hw = >hw;
ret = clk_hw_register(NULL, >hw);
if (ret) {
kfree(gck);
hw = ERR_PTR(ret);
-   } else
-   clk_generated_startup(gck);
 
return hw;
 }