Christophe Leroy <christophe.le...@csgroup.eu> writes:
> There is no point in modifying MSR_LE bit on CPUs not supporting
> little endian.

Isn't that an ABI break?

set_endian(PR_ENDIAN_BIG) should work on a big endian CPU, even if it
does nothing useful.

cheers

> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index 185beb290580..b2b9919795a2 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -1995,6 +1995,10 @@ int set_endian(struct task_struct *tsk, unsigned int 
> val)
>  {
>       struct pt_regs *regs = tsk->thread.regs;
>  
> +     if (!cpu_has_feature(CPU_FTR_PPC_LE) &&
> +         !cpu_has_feature(CPU_FTR_REAL_LE))
> +             return -EINVAL;
> +
>       if ((val == PR_ENDIAN_LITTLE && !cpu_has_feature(CPU_FTR_REAL_LE)) ||
>           (val == PR_ENDIAN_PPC_LITTLE && !cpu_has_feature(CPU_FTR_PPC_LE)))
>               return -EINVAL;
> -- 
> 2.25.0

Reply via email to