mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 07:50:04 +00:00
6bab2c613d
commit bedd30d986a0 ("genirq: make irqreturn_t an enum") blindly replaced "0" by "IRQ_NONE" in the "IRQ_RETVAL(x)" macro definition. However, as "x" is a condition, "0" meant "boolean false", not an irqreturn_t value. All of this worked, and kept working after the addition of IRQ_WAKE_THREAD, as - both "boolean false" and "IRQ_NONE" are "0" (for the comparison), - "boolean true" and "boolean false" nicely map to the correct values of "IRQ_HANDLED" and "IRQ_NONE" (for the return value). Correct the macro definition for clarity and future-proofness. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
20 lines
445 B
C
20 lines
445 B
C
#ifndef _LINUX_IRQRETURN_H
|
|
#define _LINUX_IRQRETURN_H
|
|
|
|
/**
|
|
* enum irqreturn
|
|
* @IRQ_NONE interrupt was not from this device
|
|
* @IRQ_HANDLED interrupt was handled by this device
|
|
* @IRQ_WAKE_THREAD handler requests to wake the handler thread
|
|
*/
|
|
enum irqreturn {
|
|
IRQ_NONE = (0 << 0),
|
|
IRQ_HANDLED = (1 << 0),
|
|
IRQ_WAKE_THREAD = (1 << 1),
|
|
};
|
|
|
|
typedef enum irqreturn irqreturn_t;
|
|
#define IRQ_RETVAL(x) ((x) ? IRQ_HANDLED : IRQ_NONE)
|
|
|
|
#endif
|