aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-03-22 12:08:15 -0400
committerThomas Gleixner <tglx@linutronix.de>2011-03-23 15:22:06 -0400
commitd3e17deb1790ee2123e9d11420be6411d1768b47 (patch)
treeecbfd39ef20da51fc7d5bd8a8b590f45823818f1
parent3b9038912828384e38d82409c281124631c8533b (diff)
genirq: Provide a lockdep helper
Some irq chips need to call genirq functions for nested chips from their callbacks. That upsets lockdep. So they need to set a different lock class for those nested chips. Provide a helper function to avoid open access to irq_desc. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--include/linux/irqdesc.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
index 0b30662bc36c..1595f9176b43 100644
--- a/include/linux/irqdesc.h
+++ b/include/linux/irqdesc.h
@@ -191,6 +191,15 @@ static inline void __set_irq_handler_unlocked(int irq,
191 desc->handle_irq = handler; 191 desc->handle_irq = handler;
192} 192}
193 193
194static inline void
195irq_set_lockdep_class(unsigned int irq, struct lock_class_key *class)
196{
197 struct irq_desc *desc = irq_to_desc(irq);
198
199 if (desc)
200 lockdep_set_class(&desc->lock, class);
201}
202
194#ifdef CONFIG_IRQ_PREFLOW_FASTEOI 203#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
195static inline void 204static inline void
196__irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler) 205__irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler)