Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95866d38 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

[ALSA] ymfpci - Fix race at removal



free_irq() must be called first to avoid races at removal.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent cd97f47d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2249,6 +2249,8 @@ static int snd_ymfpci_free(struct snd_ymfpci *chip)
#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_ymfpci *chip)
	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);