summaryrefslogtreecommitdiffstats
path: root/sound/firewire
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2018-10-12 01:25:22 -0400
committerTakashi Iwai <tiwai@suse.de>2018-10-12 02:08:04 -0400
commit51e68fb0929c29e47e9074ca3e99ffd6021a1c5a (patch)
tree843ee6890e0c9b1d54667e67499ed2bcf3784ead /sound/firewire
parente7bb6ad5685f05685dd8a6a5eda7bfcd14d5f95b (diff)
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')
-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,
638 if (!isight->audio_base) { 638 if (!isight->audio_base) {
639 dev_err(&unit->device, "audio unit base not found\n"); 639 dev_err(&unit->device, "audio unit base not found\n");
640 err = -ENXIO; 640 err = -ENXIO;
641 goto err_unit; 641 goto error;
642 } 642 }
643 fw_iso_resources_init(&isight->resources, unit); 643 fw_iso_resources_init(&isight->resources, unit);
644 644
@@ -667,12 +667,12 @@ static int isight_probe(struct fw_unit *unit,
667 dev_set_drvdata(&unit->device, isight); 667 dev_set_drvdata(&unit->device, isight);
668 668
669 return 0; 669 return 0;
670
671err_unit:
672 fw_unit_put(isight->unit);
673 mutex_destroy(&isight->mutex);
674error: 670error:
675 snd_card_free(card); 671 snd_card_free(card);
672
673 mutex_destroy(&isight->mutex);
674 fw_unit_put(isight->unit);
675
676 return err; 676 return err;
677} 677}
678 678