Re: RT_PREEMPT problem with cascaded irqchip

From: Yann . LEPROVOST
Date: Tue May 30 2006 - 10:50:13 EST


Well, in fact the issue doesn't come neither from the mask/unmask procedure
nor from the set_irq calls.
Correct gpio mask/unmask are called before the gpio_irq_handler.

However, there is an issue in gpio_irq_handler (specific to generic_irq and
AT91RM9200, i think) concerning desc->chip->chip_data.
The following change has to be applied :

-- pio = (void __force __iomem *) desc->chip->chip_data;
++ pio = (void __force __iomem *) desc->chip_data;

Moreover, I think that the call to redirect_hardirq have to be insered in
gpio_irq_handler but I don't know how to do that.

Regards

Yann Leprovost




Thomas Gleixner
<tglx@linutronix.
de> To
Sent by: Yann.LEPROVOST@xxxxxxxxxx
linux-kernel-owne cc
r@xxxxxxxxxxxxxxx Daniel Walker <dwalker@xxxxxxxxxx>,
linux-kernel@xxxxxxxxxxxxxxx,
linux-kernel-owner@xxxxxxxxxxxxxxx,
30/05/2006 13:22 Ingo Molnar <mingo@xxxxxxx>, Steven
Rostedt <rostedt@xxxxxxxxxxx>,
Esben Nielsen <simlo@xxxxxxxxxx>,
Please respond to Sven-Thorsten Dietrich
tglx@xxxxxxxxxxxx <sven@xxxxxxxxxx>
e Subject
Re: RT_PREEMPT problem with
cascaded irqchip










On Tue, 2006-05-30 at 12:26 +0200, Yann.LEPROVOST@xxxxxxxxxx wrote:
> Of course, here is the file arch/arm/mach-at91rm9200/gpio.c with my
> modified gpio_irq_handler.

> for (i = 0; i < 32; i++, pin++) {
> set_irq_chip(pin, &gpio_irqchip);
> printk(KERN_ERR "GPIO SET_IRQ_CHIP\n");
> set_irq_handler(pin, do_simple_IRQ);

-----------------------------------------^^^^^^^^^^^^^^^

Care to look into the implementation of this ? As the name says, its
simple. It does no ack/mask whatever. Use the level resp. the edge
handler instead.

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/


-
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/