Messages in this thread Patch in this message | | | From | Christophe Leroy <> | Subject | [PATCH] powerpc: Make set_endian() return EINVAL when not supporting little endian | Date | Wed, 25 Aug 2021 13:43:38 +0000 (UTC) |
| |
There is no point in modifying MSR_LE bit on CPUs not supporting little endian.
Just like done for get_endian(), make set_endian() return EINVAL in that case.
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> --- arch/powerpc/kernel/process.c | 4 ++++ 1 file changed, 4 insertions(+)
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
| |