irq_work: Slightly simplify IRQ_WORK_PENDING clearing
authorFrederic Weisbecker <frederic@kernel.org>
Fri, 8 Nov 2019 16:08:57 +0000 (17:08 +0100)
committerIngo Molnar <mingo@kernel.org>
Mon, 11 Nov 2019 08:03:31 +0000 (09:03 +0100)
commitfeb4a51323babe13315c3b783ea7f1cf25368918
tree5ff36d9d23ddfc23be5bee4caf1c7cb6b8242024
parent25269871db1ad0cbbaafd5098cbdb40c8db4ccb9
irq_work: Slightly simplify IRQ_WORK_PENDING clearing

Instead of fetching the value of flags and perform an xchg() to clear
a bit, just use atomic_fetch_andnot() that is more suitable to do that
job in one operation while keeping the full ordering.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E . McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20191108160858.31665-4-frederic@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/irq_work.c