mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
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>
This commit is contained in:
parent
545b8c8df4
commit
2914b0ba61
2 changed files with 24 additions and 19 deletions
|
@ -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)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue