[alsa-devel] [PATCH] ALSA: azt3328: Remove unnecessary synchronize_irq() before free_irq()
Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way) before any state associated with the IRQ is freed.
Signed-off-by: Lars-Peter Clausen lars@metafoo.de --- sound/pci/azt3328.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c index 07a4acc..5e2ef0b 100644 --- a/sound/pci/azt3328.c +++ b/sound/pci/azt3328.c @@ -2294,8 +2294,6 @@ snd_azf3328_free(struct snd_azf3328 *chip) snd_azf3328_timer_stop(chip->timer); snd_azf3328_gameport_free(chip);
- if (chip->irq >= 0) - synchronize_irq(chip->irq); __end_hw: if (chip->irq >= 0) free_irq(chip->irq, chip);
On Sat, 21 Nov 2015 12:01:22 +0100, Lars-Peter Clausen wrote:
Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way) before any state associated with the IRQ is freed.
Signed-off-by: Lars-Peter Clausen lars@metafoo.de
Applied, thanks.
Takashi
sound/pci/azt3328.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c index 07a4acc..5e2ef0b 100644 --- a/sound/pci/azt3328.c +++ b/sound/pci/azt3328.c @@ -2294,8 +2294,6 @@ snd_azf3328_free(struct snd_azf3328 *chip) snd_azf3328_timer_stop(chip->timer); snd_azf3328_gameport_free(chip);
- if (chip->irq >= 0)
synchronize_irq(chip->irq);
__end_hw: if (chip->irq >= 0) free_irq(chip->irq, chip); -- 2.1.4
participants (2)
-
Lars-Peter Clausen
-
Takashi Iwai