ALSA: HDA: wait for IRQ handlers
Sang-Hun Lee [Wed, 28 Aug 2013 21:11:10 +0000 (14:11 -0700)]
Problem description:
 - Even after disabling interrupts on the module, interrupt handlers
   could be running on other CPUs.

Fix description:
 - When disabling interrupts, also wait for any interrupt handler
   to finish as well

Bug 1353286

Change-Id: I59bde67c51341cf52ca5f7f7a31a45d9f9887666
Signed-off-by: Sang-Hun Lee <sanlee@nvidia.com>
Reviewed-on: http://git-master/r/267543
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sumit Bhattacharya <sumitb@nvidia.com>

sound/pci/hda/hda_intel.c

index 4a4285e..7c77dd9 100644 (file)
@@ -2903,6 +2903,7 @@ static void azx_stop_chip(struct azx *chip)
        /* disable interrupts */
        azx_int_disable(chip);
        azx_int_clear(chip);
+       synchronize_irq(chip->irq_id);
 
        /* disable CORB/RIRB */
        azx_free_cmd_io(chip);