On Tue, May 23, 2017 at 11:45 PM, Babu Moger <[email protected]> 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 <[email protected]>
> Reviewed-by: HÃ¥kon Bugge <[email protected]>
> Reviewed-by: Jane Chu <[email protected]>
> Reviewed-by: Shannon Nelson <[email protected]>
> Reviewed-by: Vijay Kumar <[email protected]>
> ---
> 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 -- [email protected]
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