Skip to content

Commit

Permalink
em28xx-alsa: Fix error patch for init/fini
Browse files Browse the repository at this point in the history
If something bad happens during init, we free the card data.
However, we still keep it initialized, causing some dependent
code to be called at .fini.

Fix it.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
  • Loading branch information
Mauro Carvalho Chehab committed Jan 14, 2014
1 parent b49eb2b commit 452f236
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions drivers/media/usb/em28xx/em28xx-audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -948,6 +948,7 @@ static int em28xx_audio_init(struct em28xx *dev)

card_free:
snd_card_free(card);
adev->sndcard = NULL;

return err;
}
Expand All @@ -966,12 +967,12 @@ static int em28xx_audio_fini(struct em28xx *dev)

em28xx_info("Closing audio extension");

snd_card_disconnect(dev->adev.sndcard);
flush_work(&dev->wq_trigger);
if (dev->adev.sndcard) {
snd_card_disconnect(dev->adev.sndcard);
flush_work(&dev->wq_trigger);

em28xx_audio_free_urb(dev);
em28xx_audio_free_urb(dev);

if (dev->adev.sndcard) {
snd_card_free(dev->adev.sndcard);
dev->adev.sndcard = NULL;
}
Expand Down

0 comments on commit 452f236

Please sign in to comment.