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 <liavr@mellanox.com>
Signed-off-by: Noam Camus <noamc@ezchip.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
This commit is contained in:
Liav Rehana
2017-06-15 11:44:00 +03:00
committed by Vineet Gupta
parent 5b2189ab6e
commit 28923f6b74
3 changed files with 33 additions and 0 deletions

View File

@@ -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;