Re: [PATCH 1/2] genirq: reliably replay pending edge-triggered irq

From: Thomas Gleixner
Date: Tue Apr 27 2010 - 09:44:30 EST


On Thu, 22 Apr 2010, Guillaume Knispel wrote:

> When the critical section in handle_edge_irq() is executed after
> IRQ_DISABLED has been set in the one in disable_irq(), the interrupt is

in the one ? -ENOPARSE

> acked and masked at controller level and IRQ_PENDING is set.
> ---
> arch/arm/Kconfig | 4 ----
> arch/arm/configs/acs5k_defconfig | 1 -
> arch/arm/configs/acs5k_tiny_defconfig | 1 -

Changing the defconfigs should be a separate patch and I'm not
going to push such a thing through the genirq tree. The stale
entries do not hurt.

> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> index 127b871..9bec343 100644
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -1423,7 +1423,7 @@ int setup_ioapic_entry(int apic_id, int irq,
> entry->polarity = polarity;
>
> /* Mask level triggered irqs.
> - * Use IRQ_DELAYED_DISABLE for edge triggered irqs.
> + * Edge triggered irqs can be resent by software.

That change is unrelated and should be done in a seperate patch.

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/