summaryrefslogtreecommitdiffstats
path: root/sound/firewire/isight.c
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2018-10-12 14:25:22 +0900
committerTakashi Iwai <tiwai@suse.de>2018-10-12 08:08:04 +0200
commit51e68fb0929c29e47e9074ca3e99ffd6021a1c5a (patch)
tree843ee6890e0c9b1d54667e67499ed2bcf3784ead /sound/firewire/isight.c
parente7bb6ad5685f05685dd8a6a5eda7bfcd14d5f95b (diff)
downloadlinux-51e68fb0929c29e47e9074ca3e99ffd6021a1c5a.tar.gz
linux-51e68fb0929c29e47e9074ca3e99ffd6021a1c5a.tar.bz2
linux-51e68fb0929c29e47e9074ca3e99ffd6021a1c5a.zip
ALSA: isight: fix leak of reference to firewire unit in error path of .probe callback
In some error paths, reference count of firewire unit is not decreased. This commit fixes the bug. Fixes: 5b14ec25a79b('ALSA: firewire: release reference count of firewire unit in .remove callback of bus driver') Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/isight.c')
-rw-r--r--sound/firewire/isight.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c
index de4decfb74d5..9ebe510ea26b 100644
--- a/sound/firewire/isight.c
+++ b/sound/firewire/isight.c
@@ -638,7 +638,7 @@ static int isight_probe(struct fw_unit *unit,
if (!isight->audio_base) {
dev_err(&unit->device, "audio unit base not found\n");
err = -ENXIO;
- goto err_unit;
+ goto error;
}
fw_iso_resources_init(&isight->resources, unit);
@@ -667,12 +667,12 @@ static int isight_probe(struct fw_unit *unit,
dev_set_drvdata(&unit->device, isight);
return 0;
-
-err_unit:
- fw_unit_put(isight->unit);
- mutex_destroy(&isight->mutex);
error:
snd_card_free(card);
+
+ mutex_destroy(&isight->mutex);
+ fw_unit_put(isight->unit);
+
return err;
}