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

Thomas Gleixner tglx at linutronix.de
Tue Apr 27 23:42:11 EST 2010


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


More information about the Linuxppc-dev mailing list