aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/riptide/riptide.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-06-01 08:47:29 -0400
committerJaroslav Kysela <perex@suse.cz>2006-06-22 15:34:08 -0400
commit0a50d2b2951cb7ae12726814f9a198e1c699aa0b (patch)
tree38197874a92ead9bf652732d2dc03ecafe3bfdaf /sound/pci/riptide/riptide.c
parentf079c25ab8a7d223875c5bac9b23b484e4a18f88 (diff)
[ALSA] Fix possible races in PCI driver removal
Call free_irq() before releasing others to avoid races when shared irq is issued. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/riptide/riptide.c')
-rw-r--r--sound/pci/riptide/riptide.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index c27cd4999777..5618ec9740bd 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -1836,11 +1836,11 @@ static int snd_riptide_free(struct snd_riptide *chip)
1836 UNSET_GRESET(cif->hwport); 1836 UNSET_GRESET(cif->hwport);
1837 kfree(chip->cif); 1837 kfree(chip->cif);
1838 } 1838 }
1839 if (chip->irq >= 0)
1840 free_irq(chip->irq, chip);
1839 if (chip->fw_entry) 1841 if (chip->fw_entry)
1840 release_firmware(chip->fw_entry); 1842 release_firmware(chip->fw_entry);
1841 release_and_free_resource(chip->res_port); 1843 release_and_free_resource(chip->res_port);
1842 if (chip->irq >= 0)
1843 free_irq(chip->irq, chip);
1844 kfree(chip); 1844 kfree(chip);
1845 return 0; 1845 return 0;
1846} 1846}