From: Vineet Gupta Date: Sat, 6 Apr 2013 11:41:58 +0000 (+0530) Subject: ARC: unaligned access emulation broken if callee-reg dest of LD/ST X-Git-Tag: v3.10-rc1~25^2~16 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ce147c7445c28fcf38813f62b2a2bb1266db9ef4;p=~emulex%2Finfiniband.git ARC: unaligned access emulation broken if callee-reg dest of LD/ST The fixup code correctly updates the callee-regs on stack, but fails to unwind it into actual register file. Thus userspace won't see the update. Reported-by: Noam Camus Signed-off-by: Vineet Gupta --- diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S index 666a486f1e7..0c6d664d4a8 100644 --- a/arch/arc/kernel/entry.S +++ b/arch/arc/kernel/entry.S @@ -396,7 +396,9 @@ ARC_ENTRY EV_TLBProtV bl do_misaligned_access - DISCARD_CALLEE_SAVED_USER + ; TBD: optimize - do this only if a callee reg was involved + ; either a dst of emulated LD/ST or src with address-writeback + RESTORE_CALLEE_SAVED_USER #else bl do_misaligned_error #endif