From: Heiko Carstens Date: Mon, 13 Feb 2023 11:35:18 +0000 (+0100) Subject: s390/processor: add test_and_set_cpu_flag() and test_and_clear_cpu_flag() X-Git-Tag: io_uring-6.3-2023-03-03~22^2~1 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=f96f41aae2b5bd34d32f462c7b45c0f4fad2b59e;p=linux-block.git s390/processor: add test_and_set_cpu_flag() and test_and_clear_cpu_flag() Add test_and_set_cpu_flag() and test_and_clear_cpu_flag() helper functions. Reviewed-by: Sven Schnelle Signed-off-by: Heiko Carstens --- diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index 9f89d3821d16..e98d9650764b 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h @@ -59,6 +59,22 @@ static __always_inline bool test_cpu_flag(int flag) return S390_lowcore.cpu_flags & (1UL << flag); } +static __always_inline bool test_and_set_cpu_flag(int flag) +{ + if (test_cpu_flag(flag)) + return true; + set_cpu_flag(flag); + return false; +} + +static __always_inline bool test_and_clear_cpu_flag(int flag) +{ + if (!test_cpu_flag(flag)) + return false; + clear_cpu_flag(flag); + return true; +} + /* * Test CIF flag of another CPU. The caller needs to ensure that * CPU hotplug can not happen, e.g. by disabling preemption.