On Thu, Oct 12, 2023 at 7:54 PM Uros Bizjak <ubiz...@gmail.com> wrote: > > This will break on !SMP builds, where per-cpu variables are just > > regular data and not accessed with a segment prefix. > > Ugh, indeed. Let me rethink this a bit.
Something like this: #ifdef CONFIG_SMP #define PER_CPU_ARG(arg) %__percpu_seg:arg #define PER_CPU_VAR(var) %__percpu_seg:(var)##__percpu_rel #else /* ! SMP */ #define PER_CPU_ARG(arg) arg #define PER_CPU_VAR(var) (var)##__percpu_rel #endif /* SMP */ and using the above PER_CPU_ARG in /lib/cmpxchg{8,16}b_emu.S will solve the issue. I will prepare a v2. Thanks, Uros.