On Mon, May 08, 2023 at 09:43:55PM +0200, Thomas Gleixner wrote: > +static inline void cpuhp_ap_update_sync_state(enum cpuhp_sync_state state) > +{ > + atomic_t *st = this_cpu_ptr(&cpuhp_state.ap_sync_state); > + int sync = atomic_read(st); > + > + while (!atomic_try_cmpxchg(st, &sync, state)); > +} Why isn't: atomic_set(st, state); any good?