genirq: Set irq masked state when initializing irq_desc
authorJeffy Chen <jeffy.chen@rock-chips.com>
Mon, 26 Jun 2017 11:33:33 +0000 (19:33 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 26 Jun 2017 12:05:41 +0000 (14:05 +0200)
The irq default state is set to disabled when allocating irq desc, but the
masked state flag is not set. This is inconsistent vs. the state tracking
logic which is used to prevent unnecessary calls to hardware level irq chip
functions.

Set the masked state flag as well.

Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: tfiga@chromium.org
Cc: briannorris@chromium.org
Cc: dianders@chromium.org
Link: http://lkml.kernel.org/r/1498476814-12563-1-git-send-email-jeffy.chen@rock-chips.com
kernel/irq/irqdesc.c

index 35a95fadcfda35184ee16e0f86d06ad6da3e4850..948b50e78549f09a0dc3c5f00f97b7071656fa39 100644 (file)
@@ -116,6 +116,7 @@ static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
        desc->irq_data.chip_data = NULL;
        irq_settings_clr_and_set(desc, ~0, _IRQ_DEFAULT_INIT_FLAGS);
        irqd_set(&desc->irq_data, IRQD_IRQ_DISABLED);
+       irqd_set(&desc->irq_data, IRQD_IRQ_MASKED);
        desc->handle_irq = handle_bad_irq;
        desc->depth = 1;
        desc->irq_count = 0;