Merge remote-tracking branch 'asoc/fix/da7213' into asoc-linus
[firefly-linux-kernel-4.4.55.git] / arch / arc / kernel / entry.S
index 91eeab81f52d3d66a408a215f06b4ff19022d364..0c6d664d4a8379512c32c7b52d8fbd0d321cf70e 100644 (file)
@@ -393,12 +393,14 @@ ARC_ENTRY EV_TLBProtV
 #ifdef  CONFIG_ARC_MISALIGN_ACCESS
        SAVE_CALLEE_SAVED_USER
        mov r3, sp              ; callee_regs
-#endif
 
        bl  do_misaligned_access
 
-#ifdef  CONFIG_ARC_MISALIGN_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
 
        b   ret_from_exception