Message ID | 1431920513-1491-1-git-send-email-jcliang@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Ricky, On Mon, May 18, 2015 at 11:41:49AM +0800, Ricky Liang wrote: > The variable init (struct clk_init_data) is allocated on the stack. > We weren't initializing the .flags field, so it contains random junk, > which can cause all kinds of interesting issues when the flags are > parsed by clk_register. It seems we have the same problem in clk-gate.c aswell. We do initialize do .flags field there, so this is no urgent problem, but we might get a real problem when additional fields are added to struct clk_init_data. Care to fix that aswell along with this patch? Sascha
Hi Sascha, Sure. I can fix clk-gate.c as well. New patch on the way... -Ricky On Mon, May 18, 2015 at 1:54 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote: > Hi Ricky, > > On Mon, May 18, 2015 at 11:41:49AM +0800, Ricky Liang wrote: >> The variable init (struct clk_init_data) is allocated on the stack. >> We weren't initializing the .flags field, so it contains random junk, >> which can cause all kinds of interesting issues when the flags are >> parsed by clk_register. > > It seems we have the same problem in clk-gate.c aswell. We do initialize > do .flags field there, so this is no urgent problem, but we might get a > real problem when additional fields are added to struct clk_init_data. > Care to fix that aswell along with this patch? > > Sascha > > -- > Pengutronix e.K. | | > Industrial Linux Solutions | http://www.pengutronix.de/ | > Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
diff --git a/drivers/clk/mediatek/clk-pll.c b/drivers/clk/mediatek/clk-pll.c index 66154ca..44409e9 100644 --- a/drivers/clk/mediatek/clk-pll.c +++ b/drivers/clk/mediatek/clk-pll.c @@ -268,7 +268,7 @@ static struct clk *mtk_clk_register_pll(const struct mtk_pll_data *data, void __iomem *base) { struct mtk_clk_pll *pll; - struct clk_init_data init; + struct clk_init_data init = {}; struct clk *clk; const char *parent_name = "clk26m";
The variable init (struct clk_init_data) is allocated on the stack. We weren't initializing the .flags field, so it contains random junk, which can cause all kinds of interesting issues when the flags are parsed by clk_register. Signed-off-by: Ricky Liang <jcliang@chromium.org> --- drivers/clk/mediatek/clk-pll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)