On Tue, May 23, 2017 at 11:45 PM, Babu Moger <babu.moger@xxxxxxxxxx> wrote: > Found this problem while enabling queued rwlock on SPARC. > The parameter CONFIG_CPU_BIG_ENDIAN is used to clear the > specific byte in qrwlock structure. Without this parameter, > we clear the wrong byte. Here is the code. > > static inline u8 *__qrwlock_write_byte(struct qrwlock *lock) > { > return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); > } > > Define CPU_BIG_ENDIAN for SPARC to fix it. > > Signed-off-by: Babu Moger <babu.moger@xxxxxxxxxx> > Reviewed-by: Håkon Bugge <haakon.bugge@xxxxxxxxxx> > Reviewed-by: Jane Chu <jane.chu@xxxxxxxxxx> > Reviewed-by: Shannon Nelson <shannon.nelson@xxxxxxxxxx> > Reviewed-by: Vijay Kumar <vijay.ac.kumar@xxxxxxxxxx> > --- > arch/sparc/Kconfig | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 908f019..2f58c16 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -92,6 +92,10 @@ config ARCH_DEFCONFIG > config ARCH_PROC_KCORE_TEXT > def_bool y > > +config CPU_BIG_ENDIAN > + bool > + default y if SPARC def_bool y? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds