Commit aa505ecc authored by Jiasheng Jiang's avatar Jiasheng Jiang Committed by Mark Brown

ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio

Since the potential failure of the devm_regmap_init_mmio(), it will
return error pointer and be assigned to the regmap.
Then the error pointer will be dereferenced.
For example rx->regmap will be used in rx_macro_mclk_enable().
Therefore, it should be better to check it.

Fixes: af3d54b9 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Fixes: c39667dd ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
Fixes: 809bcbce ("ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro")
Signed-off-by: default avatarJiasheng Jiang <jiasheng@iscas.ac.cn>
Link: https://lore.kernel.org/r/20220121171031.2826198-1-jiasheng@iscas.ac.cnSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent dbf2f8e3
...@@ -3542,6 +3542,8 @@ static int rx_macro_probe(struct platform_device *pdev) ...@@ -3542,6 +3542,8 @@ static int rx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base); return PTR_ERR(base);
rx->regmap = devm_regmap_init_mmio(dev, base, &rx_regmap_config); rx->regmap = devm_regmap_init_mmio(dev, base, &rx_regmap_config);
if (IS_ERR(rx->regmap))
return PTR_ERR(rx->regmap);
dev_set_drvdata(dev, rx); dev_set_drvdata(dev, rx);
......
...@@ -1821,6 +1821,8 @@ static int tx_macro_probe(struct platform_device *pdev) ...@@ -1821,6 +1821,8 @@ static int tx_macro_probe(struct platform_device *pdev)
} }
tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config); tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config);
if (IS_ERR(tx->regmap))
return PTR_ERR(tx->regmap);
dev_set_drvdata(dev, tx); dev_set_drvdata(dev, tx);
......
...@@ -2405,6 +2405,8 @@ static int wsa_macro_probe(struct platform_device *pdev) ...@@ -2405,6 +2405,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
return PTR_ERR(base); return PTR_ERR(base);
wsa->regmap = devm_regmap_init_mmio(dev, base, &wsa_regmap_config); wsa->regmap = devm_regmap_init_mmio(dev, base, &wsa_regmap_config);
if (IS_ERR(wsa->regmap))
return PTR_ERR(wsa->regmap);
dev_set_drvdata(dev, wsa); dev_set_drvdata(dev, wsa);
......
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