Re: [External] [PATCH] locking/atomic: sh: Use generic_cmpxchg_local for arch_cmpxchg_local()

From: Google
Date: Wed Oct 25 2023 - 11:13:06 EST


On Wed, 25 Oct 2023 19:26:37 +0800
"wuqiang.matt" <wuqiang.matt@xxxxxxxxxxxxx> wrote:

> On 2023/10/24 22:52, Masami Hiramatsu (Google) wrote:
> > From: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
> >
> > Use generic_cmpxchg_local() for arch_cmpxchg_local() implementation
> > in SH architecture because it does not implement arch_cmpxchg_local().
> >
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202310241310.Ir5uukOG-lkp@xxxxxxxxx/
> > Signed-off-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
> > ---
> > arch/sh/include/asm/cmpxchg.h | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/arch/sh/include/asm/cmpxchg.h b/arch/sh/include/asm/cmpxchg.h
> > index 288f6f38d98f..e920e61fb817 100644
> > --- a/arch/sh/include/asm/cmpxchg.h
> > +++ b/arch/sh/include/asm/cmpxchg.h
> > @@ -71,4 +71,6 @@ static inline unsigned long __cmpxchg(volatile void * ptr, unsigned long old,
> > (unsigned long)_n_, sizeof(*(ptr))); \
> > })
> >
> > +#include <asm-generic/cmpxchg-local.h>
> > +
>
> asm-generic/cmpxchg-local.h defines only 2 routines: __generic_cmpxchg_local
> and __generic_cmpxchg64_local.

Thanks Wuqiang, I found how I can fix that from your message.

>
> Shall add the definition of arch_cmpxchg_local into
> arch/sh/include/asm/cmpxchg.h, or group arch_cmpxchg_local and
> arch_cmpxchg64_local into
> asm-generic/cmpxchg-local.h ?

No, maybe it depends on the arch that which __generic function need to use.

Thank you,

>
> > #endif /* __ASM_SH_CMPXCHG_H */
> >
>


--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>