aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irqflags.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2020-06-18 22:28:37 +0200
committerPeter Zijlstra <peterz@infradead.org>2020-11-24 16:47:49 +0100
commit2914b0ba61a9d253535e51af16c7122a8148995d (patch)
tree1964cfeb5a14ef00bbc04fa237427f54caa32c74 /include/linux/irqflags.h
parentsmp: Cleanup smp_call_function*() (diff)
downloadlinux-dev-2914b0ba61a9d253535e51af16c7122a8148995d.tar.xz
linux-dev-2914b0ba61a9d253535e51af16c7122a8148995d.zip
irq_work: Optimize irq_work_single()
Trade one atomic op for a full memory barrier. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Diffstat (limited to 'include/linux/irqflags.h')
-rw-r--r--include/linux/irqflags.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
index fef2d43a7a1d..8de0e1373de7 100644
--- a/include/linux/irqflags.h
+++ b/include/linux/irqflags.h
@@ -107,14 +107,14 @@ do { \
current->irq_config = 0; \
} while (0)
-# define lockdep_irq_work_enter(__work) \
+# define lockdep_irq_work_enter(_flags) \
do { \
- if (!(atomic_read(&__work->node.a_flags) & IRQ_WORK_HARD_IRQ))\
+ if (!((_flags) & IRQ_WORK_HARD_IRQ)) \
current->irq_config = 1; \
} while (0)
-# define lockdep_irq_work_exit(__work) \
+# define lockdep_irq_work_exit(_flags) \
do { \
- if (!(atomic_read(&__work->node.a_flags) & IRQ_WORK_HARD_IRQ))\
+ if (!((_flags) & IRQ_WORK_HARD_IRQ)) \
current->irq_config = 0; \
} while (0)