Messages in this thread | | | Date | Tue, 11 May 2021 10:57:37 +0100 | From | Mark Rutland <> | Subject | Re: [PATCH 27/33] locking/atomic: powerpc: move to ARCH_ATOMIC |
| |
On Tue, May 11, 2021 at 10:16:21AM +0100, Mark Rutland wrote: > On Mon, May 10, 2021 at 10:37:47AM +0100, Mark Rutland wrote: > > We'd like all architectures to convert to ARCH_ATOMIC, as once all > > architectures are converted it will be possible to make significant > > cleanups to the atomics headers, and this will make it much easier to > > generically enable atomic functionality (e.g. debug logic in the > > instrumented wrappers). > > > > As a step towards that, this patch migrates powerpc to ARCH_ATOMIC. The > > arch code provides arch_{atomic,atomic64,xchg,cmpxchg}*(), and common > > code wraps these with optional instrumentation to provide the regular > > functions. > > > > Signed-off-by: Mark Rutland <mark.rutland@arm.com> > > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > > Cc: Boqun Feng <boqun.feng@gmail.com> > > Cc: Michael Ellerman <mpe@ellerman.id.au> > > Cc: Paul Mackerras <paulus@samba.org> > > Cc: Peter Zijlstra <peterz@infradead.org> > > Cc: Will Deacon <will@kernel.org> > > --- > > arch/powerpc/Kconfig | 1 + > > arch/powerpc/include/asm/atomic.h | 140 +++++++++++++++++++------------------ > > arch/powerpc/include/asm/cmpxchg.h | 30 ++++---- > > 3 files changed, 89 insertions(+), 82 deletions(-) > > The kbuild test robot spotted a couple of bits I'd got wrong; I've noted > those below (and both are now fixed in my kernel.org branch). > > > static __always_inline bool > > -atomic_try_cmpxchg_lock(atomic_t *v, int *old, int new) > > +arch_atomic_try_cmpxchg_lock(atomic_t *v, int *old, int new) > > Since this isn't part of the core atomic API, and is used directly by > powerpc's spinlock implementation, this should have stayed as-is (or we > should use the `arch_` prefix consitently and update the spinlock code). > > I've dropped the `arch_` prefix for now.
On second thought (and having hit a similar issue on m68k), I've added the `arch_` prefix and updated the caller, to more clearly separate the common atomic API and the arch-specific bits.
Thanks, Mark.
| |