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