• Babu Moger's avatar
    arch: define CPU_BIG_ENDIAN for all fixed big endian archs · 4c97a0c8
    Babu Moger authored
    Patch series "Define CPU_BIG_ENDIAN or warn for inconsistencies", v3.
    
    While working on enabling queued rwlock on SPARC, found this following
    code in include/asm-generic/qrwlock.h which uses CONFIG_CPU_BIG_ENDIAN to
    clear a byte.
    
    static inline u8 *__qrwlock_write_byte(struct qrwlock *lock)
     {
    	return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN);
     }
    
    Problem is many of the fixed big endian architectures don't define
    CPU_BIG_ENDIAN and clears the wrong byte.
    
    Define CPU_BIG_ENDIAN for all the fixed big endian architecture to fix it.
    
    Also found few more references of this config parameter in
    drivers/of/base.c
    drivers/of/fdt.c
    drivers/tty/serial/earlycon.c
    drivers/tty/serial/serial_core.c
    Be aware that this may cause regressions if someone has worked-around
    problems in the above code already. Remove the work-around.
    
    Here is our original discussion
    https://lkml.org/lkml/2017/5/24/620
    
    Link: http://lkml.kernel.org/r/1499358861-179979-2-git-send...
    4c97a0c8
Kconfig 8.98 KB