Commit 4999d703 authored by Rob Clark's avatar Rob Clark Committed by Mark Brown

ASoC: rt5682: Fix crash due to out of scope stack vars

Move the declaration of temporary arrays to somewhere that won't go out
of scope before the devm_clk_hw_register() call, lest we be at the whim
of the compiler for whether those stack variables get overwritten.

Fixes a crash seen with gcc version 11.2.1 20210728 (Red Hat 11.2.1-1)

Fixes: edbd24ea ("ASoC: rt5682: Drop usage of __clk_get_name()")
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20211118010453.843286-1-robdclark@gmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 12dc48f5
...@@ -2858,6 +2858,8 @@ int rt5682_register_dai_clks(struct rt5682_priv *rt5682) ...@@ -2858,6 +2858,8 @@ int rt5682_register_dai_clks(struct rt5682_priv *rt5682)
for (i = 0; i < RT5682_DAI_NUM_CLKS; ++i) { for (i = 0; i < RT5682_DAI_NUM_CLKS; ++i) {
struct clk_init_data init = { }; struct clk_init_data init = { };
struct clk_parent_data parent_data;
const struct clk_hw *parent;
dai_clk_hw = &rt5682->dai_clks_hw[i]; dai_clk_hw = &rt5682->dai_clks_hw[i];
...@@ -2865,17 +2867,17 @@ int rt5682_register_dai_clks(struct rt5682_priv *rt5682) ...@@ -2865,17 +2867,17 @@ int rt5682_register_dai_clks(struct rt5682_priv *rt5682)
case RT5682_DAI_WCLK_IDX: case RT5682_DAI_WCLK_IDX:
/* Make MCLK the parent of WCLK */ /* Make MCLK the parent of WCLK */
if (rt5682->mclk) { if (rt5682->mclk) {
init.parent_data = &(struct clk_parent_data){ parent_data = (struct clk_parent_data){
.fw_name = "mclk", .fw_name = "mclk",
}; };
init.parent_data = &parent_data;
init.num_parents = 1; init.num_parents = 1;
} }
break; break;
case RT5682_DAI_BCLK_IDX: case RT5682_DAI_BCLK_IDX:
/* Make WCLK the parent of BCLK */ /* Make WCLK the parent of BCLK */
init.parent_hws = &(const struct clk_hw *){ parent = &rt5682->dai_clks_hw[RT5682_DAI_WCLK_IDX];
&rt5682->dai_clks_hw[RT5682_DAI_WCLK_IDX] init.parent_hws = &parent;
};
init.num_parents = 1; init.num_parents = 1;
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment