[PATCH 2/2] at91: use request_irq/free_irq instead of setup_irq/remove_irq

Alexandre Belloni alexandre.belloni at free-electrons.com
Thu Jul 16 08:29:02 PDT 2015


Hi,

On 05/07/2015 at 23:48:26 +0200, Thomas Gleixner wrote :
> On Fri, 3 Jul 2015, David Dueck wrote:
> 
> > This fixes a warning when using RT-Preempt.
> 
> That's not a proper explanation for the patch and by all means it
> cannot fix anything because free_irq() is just a different wrapper
> around __free_irq() than remove_irq(). So how on earth fixes that the
> problem at hand?
> 

Hum, that is quite simple, the following patch
http://git.kernel.org/cgit/linux/kernel/git/rt/linux-rt-devel.git/commit/?id=227cd21851456fb08e87f5a35e0e51280a9fd439
bitrotted and should be rewritten completely or at least dropped.

For drivers/clocksource/timer-atmel-st.c, the patch is broken since at
least 3.18 as NR_IRQS_LEGACY + AT91_ID_SYS is 17 and the actual irq
allocated by irq_of_parse_and_map is 16.
Since 4.1, AT91_ID_SYS doesn't exist anymore and this is not compiling
at all.

For drivers/clocksource/timer-atmel-pit.c, struct irqaction
at91sam926x_pit_irq is never initialized but then it is used in
setup_irq()/remove_irq(). This basically ends up registering a null
handler for IRQ 0.

I'm preparing a replacement patch. I'd even say that this is probably
something we would want to mainline. Meanwhile, can you drop the
mentioned patch?

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the linux-arm-kernel mailing list