lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0291/1017] ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio
    Date
    From: Jiasheng Jiang <jiasheng@iscas.ac.cn>

    [ Upstream commit aa505ecccf2ae7546e0e262d574e18a9241f3005 ]

    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: af3d54b99764 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
    Fixes: c39667ddcfc5 ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
    Fixes: 809bcbcecebf ("ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Link: https://lore.kernel.org/r/20220121171031.2826198-1-jiasheng@iscas.ac.cn
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/codecs/lpass-rx-macro.c | 2 ++
    sound/soc/codecs/lpass-tx-macro.c | 2 ++
    sound/soc/codecs/lpass-wsa-macro.c | 2 ++
    3 files changed, 6 insertions(+)

    diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
    index 6ffe88345de5..2b272a82eabf 100644
    --- a/sound/soc/codecs/lpass-rx-macro.c
    +++ b/sound/soc/codecs/lpass-rx-macro.c
    @@ -3542,6 +3542,8 @@ static int rx_macro_probe(struct platform_device *pdev)
    return PTR_ERR(base);

    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);

    diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
    index a4c0a155af56..9c96ab1bf84f 100644
    --- a/sound/soc/codecs/lpass-tx-macro.c
    +++ b/sound/soc/codecs/lpass-tx-macro.c
    @@ -1821,6 +1821,8 @@ static int tx_macro_probe(struct platform_device *pdev)
    }

    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);

    diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
    index 75baf8eb7029..69d2915f40d8 100644
    --- a/sound/soc/codecs/lpass-wsa-macro.c
    +++ b/sound/soc/codecs/lpass-wsa-macro.c
    @@ -2405,6 +2405,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
    return PTR_ERR(base);

    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);

    --
    2.34.1


    \
     
     \ /
      Last update: 2022-04-05 14:56    [W:3.891 / U:0.796 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site