diff options
author | Takashi Iwai <tiwai@suse.de> | 2023-08-20 19:26:35 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2023-08-21 16:20:55 +0200 |
commit | 17a1eab7b70d85fc5711f37bb6e530b771736bb7 (patch) | |
tree | fe309bb87fd0fdcbf5f3eae5f8a392734cd86c45 | |
parent | ALSA: hda/tas2781: Fix acpi device refcount leak at tas2781_read_acpi() (diff) | |
download | linux-17a1eab7b70d85fc5711f37bb6e530b771736bb7.tar.xz linux-17a1eab7b70d85fc5711f37bb6e530b771736bb7.zip |
ALSA: hda/tas2781: Fix PM refcount unbalance at tas2781_hda_bind()
The error path of tas2781_hda_bind() needs to release PM refcount as
well. Modify the code flow to handle properly.
Fixes: 5be27f1e3ec9 ("ALSA: hda/tas2781: Add tas2781 HDA driver")
Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Closes: https://lore.kernel.org/r/9f910785-e856-1539-e3e4-c9817af5fe67@linux.intel.com
Link: https://lore.kernel.org/r/20230820172635.22236-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/hda/tas2781_hda_i2c.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c index 0968ae915fd0..aa9ce3837336 100644 --- a/sound/pci/hda/tas2781_hda_i2c.c +++ b/sound/pci/hda/tas2781_hda_i2c.c @@ -608,15 +608,13 @@ static int tas2781_hda_bind(struct device *dev, struct device *master, strscpy(comps->name, dev_name(dev), sizeof(comps->name)); ret = tascodec_init(tas_priv, codec, tasdev_fw_ready); - if (ret) - return ret; - - comps->playback_hook = tas2781_hda_playback_hook; + if (!ret) + comps->playback_hook = tas2781_hda_playback_hook; pm_runtime_mark_last_busy(dev); pm_runtime_put_autosuspend(dev); - return 0; + return ret; } static void tas2781_hda_unbind(struct device *dev, |