On Fri, 2019-05-31 at 16:38 +0200, Takashi Iwai wrote: > The error paths in hdac_hda_codec_probe() don't take care of the bus > link refcount properly, which leave the refcount still high. > This patch addresses them. Hi Takashi, Thanks for this. But I looked into hdac_hdmi probe and we have a similar problem there as well. Thanks, Ranjani > Fixes: 6bae5ea94989 ("ASoC: hdac_hda: add asoc extension for legacy > HDA codec drivers") > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> > --- > > A bug I found while digging for another problem :) > > sound/soc/codecs/hdac_hda.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/sound/soc/codecs/hdac_hda.c > b/sound/soc/codecs/hdac_hda.c > index 7d4940256914..b55deaeb1ebf 100644 > --- a/sound/soc/codecs/hdac_hda.c > +++ b/sound/soc/codecs/hdac_hda.c > @@ -475,8 +475,10 @@ static int hdac_hda_dev_probe(struct hdac_device > *hdev) > snd_hdac_ext_bus_link_get(hdev->bus, hlink); > > hda_pvt = hdac_to_hda_priv(hdev); > - if (!hda_pvt) > - return -ENOMEM; > + if (!hda_pvt) { > + ret = -ENOMEM; > + goto error; > + } > > /* ASoC specific initialization */ > ret = devm_snd_soc_register_component(&hdev->dev, > @@ -484,12 +486,13 @@ static int hdac_hda_dev_probe(struct > hdac_device *hdev) > ARRAY_SIZE(hdac_hda_dais)); > if (ret < 0) { > dev_err(&hdev->dev, "failed to register HDA codec > %d\n", ret); > - return ret; > + goto error; > } > > dev_set_drvdata(&hdev->dev, hda_pvt); > - snd_hdac_ext_bus_link_put(hdev->bus, hlink); > > + error: > + snd_hdac_ext_bus_link_put(hdev->bus, hlink); > return ret; > } > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel