Re: Threaded interrupt handlers broken?

From: Michael Buesch
Date: Mon Aug 17 2009 - 08:30:40 EST


On Monday 17 August 2009 14:14:01 Thomas Gleixner wrote:
> Michael,
>
> On Mon, 17 Aug 2009, Michael Buesch wrote:
> > This fixes it :)
>
> can you please test the final version of the fix ?
>
> Thanks,
>
> tglx
> ---
> --- a/kernel/irq/manage.c
> +++ b/kernel/irq/manage.c
> @@ -607,7 +607,6 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
> */
> get_task_struct(t);
> new->thread = t;
> - wake_up_process(t);
> }
>
> /*
> @@ -690,6 +689,7 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
> (int)(new->flags & IRQF_TRIGGER_MASK));
> }
>
> + new->irq = irq;
> *old_ptr = new;
>
> /* Reset broken irq detection when installing new handler */
> @@ -707,7 +707,6 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
>
> spin_unlock_irqrestore(&desc->lock, flags);
>
> - new->irq = irq;
> register_irq_proc(irq, desc);
> new->dir = NULL;
> register_handler_proc(irq, new);
>
>

Also works. Thanks.

Tested-by: Michael Buesch <mb@xxxxxxxxx>

--
Greetings, Michael.
--
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/