[patchset] Generic IRQ Subsystem: -V5

From: Ingo Molnar
Date: Fri May 19 2006 - 10:53:30 EST


This is Version 5 of the genirq patch-queue, against 2.6.17-rc4. The
genirq patch-queue improves the generic IRQ layer to be truly generic,
by adding various abstractions and features to it, without impacting
existing functionality. It converts ARM, i386 and x86_64 to this new
generic IRQ layer - while keeping compatibility with all the other
genirq architectures too.

The full patch-queue can be downloaded from:

http://redhat.com/~mingo/generic-irq-subsystem/

genirq -V5 is mostly about fixes and smaller cleanups. Suggestions from
many people were included - let us know if anything is missing. It has
been tested on i386, x86_64 and ARM systems.

Changes since -V4:

- fix: added IRQ_INPROGRESS protection to the fastack, level and simple
flow handlers, to avoid irq reentry due to hardware bugs. (especially
on SMP this is not unheard of.)

- fix: fixed two old-style IRQ probing bugs on non-irqchip
architectures.

- fix: bad irq vectors should increase the IRQ kstat too

- feature: added IRQ_DELAYED_DISABLE support for edge-irq handling on
really dumb controllers.

- docs: various documentation and comment updates

- cleanup/speedup: cleaned up desc->depth and IRQ_DISABLED handling -
the two were not always in sync. Made the generic flow handlers use
IRQ_DISABLED instead of desc->depth - results in more optimal code.

- cleanup: introduced generic_handle_irq(irq) for architectures to call
when they want the generic layer to handle an interrupt.

- rename: renamed probe_lock to probing_active

- rename: renamed handle_level_irq_fastack to handle_fastack_irq -
there is no strict requirement of the trigger type of the irq.

The split-out queue can be found at:

http://redhat.com/~mingo/generic-irq-subsystem/patches/

Ingo, Thomas
-
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/