From 28923f6b74060b183207a373ddae4ce4948cabea Mon Sep 17 00:00:00 2001 From: Liav Rehana Date: Thu, 15 Jun 2017 11:44:00 +0300 Subject: ARC: [plat-eznps] handle extra aux regs #2: kernel/entry exit Preserve eflags and gpa1 aux during entry/exit into kernel as these could be modified by kernel mode These registers used by compare exchange instructions. - GPA1 is used for compare value, - EFLAGS got bit reflects atomic operation response. EFLAGS is zeroed for each new user task so it won't get its parent value. Signed-off-by: Liav Rehana Signed-off-by: Noam Camus Signed-off-by: Vineet Gupta --- arch/arc/kernel/process.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/arc/kernel/process.c') diff --git a/arch/arc/kernel/process.c b/arch/arc/kernel/process.c index 5c631a111240..5ac3b547453f 100644 --- a/arch/arc/kernel/process.c +++ b/arch/arc/kernel/process.c @@ -234,6 +234,10 @@ void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long usp) */ regs->status32 = STATUS_U_MASK | STATUS_L_MASK | ISA_INIT_STATUS_BITS; +#ifdef CONFIG_EZNPS_MTM_EXT + regs->eflags = 0; +#endif + /* bogus seed values for debugging */ regs->lp_start = 0x10; regs->lp_end = 0x80; -- cgit v1.2.3-59-g8ed1b