[PORT FROM R2] io_apic: mask the irq when disabling irq
authorAymen Zayet <aymenx.zayet@intel.com>
Wed, 14 Dec 2011 14:08:46 +0000 (15:08 +0100)
committerbuildbot <buildbot@intel.com>
Thu, 29 Dec 2011 18:46:52 +0000 (10:46 -0800)
BZ: 3216

Ported from R2 branch with the following description:
  disable_irq() and enable_irq() require disable() and enable()
  callbacks to be registered at the interrupt controller level.
  Since the interrupt should be kept in pending on disable_irq(),
  mask_IO_APIC_irq() and unmask_IO_APIC_irq() should be used.

  Change-Id: I862a4e4e17ab15f585bbf1126c0e56d8fa9b2869
Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
Change-Id: I5f7e8728efefd0557fa72b5d2d89cba5ee9574ae
Signed-off-by: Aymen Zayet <aymenx.zayet@intel.com>
Reviewed-on: http://android.intel.com:8080/27813
Reviewed-by: Champciaux, NicolasX <nicolasx.champciaux@intel.com>
Tested-by: Champciaux, NicolasX <nicolasx.champciaux@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
arch/x86/kernel/apic/io_apic.c

index 2b92e1d..47c1c4d 100644 (file)
@@ -2527,6 +2527,8 @@ static struct irq_chip ioapic_chip __read_mostly = {
        .irq_startup            = startup_ioapic_irq,
        .irq_mask               = mask_ioapic_irq,
        .irq_unmask             = unmask_ioapic_irq,
+       .irq_disable    = mask_ioapic_irq,
+       .irq_enable             = unmask_ioapic_irq,
        .irq_ack                = ack_apic_edge,
        .irq_eoi                = ack_apic_level,
 #ifdef CONFIG_SMP