path: root/kernel/irq/matrix.c
diff options
authorThomas Gleixner <tglx@linutronix.de>2017-11-28 15:40:33 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-12-04 20:50:35 +0100
commitbb5c43428252f27b875c764451321a83a531d6e5 (patch)
tree471cc65029d5958edabc9813996da1f1221d1abf /kernel/irq/matrix.c
parentae64f9bd1d3621b5e60d7363bc20afb46aede215 (diff)
genirq/matrix: Fix the precedence fix for real
The previous commit which made the operator precedence in irq_matrix_available() explicit made the implicit brokenness explicitely wrong. It was wrong in the original commit already. The overworked maintainer did not notice it either when merging the patch. Replace the confusing '?' construct by a simple and obvious if (). Fixes: 75f1133873d6 ("genirq/matrix: Make - vs ?: Precedence explicit") Reported-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'kernel/irq/matrix.c')
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/irq/matrix.c b/kernel/irq/matrix.c
index 7df2480005f8..0ba0dd8863a7 100644
--- a/kernel/irq/matrix.c
+++ b/kernel/irq/matrix.c
@@ -384,7 +384,9 @@ unsigned int irq_matrix_available(struct irq_matrix *m, bool cpudown)
struct cpumap *cm = this_cpu_ptr(m->maps);
- return (m->global_available - cpudown) ? cm->available : 0;
+ if (!cpudown)
+ return m->global_available;
+ return m->global_available - cm->available;