]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
percpu: add __this_cpu_try_cmpxchg()
authorUros Bizjak <ubizjak@gmail.com>
Tue, 28 May 2024 14:43:13 +0000 (16:43 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 4 Jul 2024 02:30:02 +0000 (19:30 -0700)
Add __this_cpu_try_cmpxchg() version of the percpu op.

Link: https://lkml.kernel.org/r/20240528144345.5980-1-ubizjak@gmail.com
Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Acked-by: Dennis Zhou <dennis@kernel.org>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Lorenzo Stoakes <lstoakes@gmail.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/percpu-defs.h

index ec357311992349a455db15a99a95f90d1aaba19a..8efce7414fad690e6aa7fccef536f77f4a7f0e3c 100644 (file)
@@ -475,6 +475,12 @@ do {                                                                       \
        raw_cpu_cmpxchg(pcp, oval, nval);                               \
 })
 
+#define __this_cpu_try_cmpxchg(pcp, ovalp, nval)                       \
+({                                                                     \
+       __this_cpu_preempt_check("try_cmpxchg");                        \
+       raw_cpu_try_cmpxchg(pcp, ovalp, nval);                          \
+})
+
 #define __this_cpu_sub(pcp, val)       __this_cpu_add(pcp, -(typeof(pcp))(val))
 #define __this_cpu_inc(pcp)            __this_cpu_add(pcp, 1)
 #define __this_cpu_dec(pcp)            __this_cpu_sub(pcp, 1)