History

Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fixes from Thomas Gleixner: "Two patches from Boris which address a potential deadlock in the atmel irq chip driver" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/atmel-aic: Fix potential deadlock in ->xlate() genirq: Provide irq_gc_{lock_irqsave,unlock_irqrestore}() helpers

Linus Torvalds committed 10 years ago

Commit aaed4d02 parents d4690f1 5eb0d6e3 files · +16 −4Browse files

Showing the changes to include/linux (1 of 3 files). Show all

Unified · Split

include/linux/irq.h+10−0
@@ -945,6 +945,16 @@ static inline void irq_gc_lock(struct irq_chip_generic *gc) { } · 944 unmodified lines
945945 static inline void irq_gc_unlock(struct irq_chip_generic *gc) { }
946946 #endif
947947
948+/*
949+ * The irqsave variants are for usage in non interrupt code. Do not use
950+ * them in irq_chip callbacks. Use irq_gc_lock() instead.
951+ */
952+#define irq_gc_lock_irqsave(gc, flags) \
953+ raw_spin_lock_irqsave(&(gc)->lock, flags)
954+
955+#define irq_gc_unlock_irqrestore(gc, flags) \
956+ raw_spin_unlock_irqrestore(&(gc)->lock, flags)
957+
948958 static inline void irq_reg_writel(struct irq_chip_generic *gc,
949959 u32 val, int reg_offset)
950960 {