summaryrefslogtreecommitdiff
path: root/sound/firewire
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2017-08-22 15:44:45 +0200
committerTakashi Iwai <tiwai@suse.de>2017-08-22 15:44:45 +0200
commit241bc82e62b28fdb7223b85180fd814f4963c971 (patch)
treef0d1a3889fd027e017faa37fc34bffe2fa038c41 /sound/firewire
parent3a93d082bacf887b47737c4b75c083dea7570832 (diff)
parent88c54cdf61f508ebcf8da2d819f5dfc03e954d1d (diff)
Merge branch 'for-linus' into for-next
Conflicts: sound/core/control.c
Diffstat (limited to 'sound/firewire')
-rw-r--r--sound/firewire/iso-resources.c7
-rw-r--r--sound/firewire/motu/motu.c1
2 files changed, 7 insertions, 1 deletions
diff --git a/sound/firewire/iso-resources.c b/sound/firewire/iso-resources.c
index f0e4d502d604..066b5df666f4 100644
--- a/sound/firewire/iso-resources.c
+++ b/sound/firewire/iso-resources.c
@@ -210,9 +210,14 @@ EXPORT_SYMBOL(fw_iso_resources_update);
*/
void fw_iso_resources_free(struct fw_iso_resources *r)
{
- struct fw_card *card = fw_parent_device(r->unit)->card;
+ struct fw_card *card;
int bandwidth, channel;
+ /* Not initialized. */
+ if (r->unit == NULL)
+ return;
+ card = fw_parent_device(r->unit)->card;
+
mutex_lock(&r->mutex);
if (r->allocated) {
diff --git a/sound/firewire/motu/motu.c b/sound/firewire/motu/motu.c
index fddeb11283c3..2bbb764822fc 100644
--- a/sound/firewire/motu/motu.c
+++ b/sound/firewire/motu/motu.c
@@ -131,6 +131,7 @@ static void do_registration(struct work_struct *work)
return;
error:
snd_motu_transaction_unregister(motu);
+ snd_motu_stream_destroy_duplex(motu);
snd_card_free(motu->card);
dev_info(&motu->unit->device,
"Sound card registration failed: %d\n", err);