[alsa-cvslog] alsa-kernel: ymfpci - Fix race at removal
Brought to you by:
perex
From: Takashi I. <ti...@su...> - 2008-03-22 09:26:51
|
changeset: 6005:06b129b9b060 user: tiwai date: Sat Mar 22 10:11:08 2008 +0100 files: pci/ymfpci/ymfpci_main.c description: ymfpci - Fix race at removal free_irq() must be called first to avoid races at removal. diff -r 3ed43822fab7 -r 06b129b9b060 pci/ymfpci/ymfpci_main.c --- a/pci/ymfpci/ymfpci_main.c Thu Mar 20 12:30:36 2008 +0100 +++ b/pci/ymfpci/ymfpci_main.c Sat Mar 22 10:11:08 2008 +0100 @@ -2249,6 +2249,8 @@ static int snd_ymfpci_free(struct snd_ym #ifdef CONFIG_PM vfree(chip->saved_regs); #endif + if (chip->irq >= 0) + free_irq(chip->irq, chip); release_and_free_resource(chip->mpu_res); release_and_free_resource(chip->fm_res); snd_ymfpci_free_gameport(chip); @@ -2257,8 +2259,6 @@ static int snd_ymfpci_free(struct snd_ym if (chip->work_ptr.area) snd_dma_free_pages(&chip->work_ptr); - if (chip->irq >= 0) - free_irq(chip->irq, chip); release_and_free_resource(chip->res_reg_area); pci_write_config_word(chip->pci, 0x40, chip->old_legacy_ctrl); |