ARC have a tricky implemented ret_from_exception function. It is written on ASM and can be called like regular function. However it has another 'entry point' as it can be called as a continuation of EV_Trap function. As we declare "ret_from_exception" using ENTRY macro it may align "ret_from_exception" by 4 bytes by adding padding before it. "ret_from_exception" doesn't require alignment by 4 bytes (as it doesn't go to vector table, etc...) so let's avoid aligning it by switch from ENTRY (which is alias for SYM_FUNC_START) to SYM_FUNC_START_NOALIGN macro. Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@xxxxxxxxxxxx> --- arch/arc/kernel/entry-arcv2.S | 2 +- arch/arc/kernel/entry.S | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arc/kernel/entry-arcv2.S b/arch/arc/kernel/entry-arcv2.S index 12d5f12d10d2..d482e1507f56 100644 --- a/arch/arc/kernel/entry-arcv2.S +++ b/arch/arc/kernel/entry-arcv2.S @@ -260,4 +260,4 @@ debug_marker_ds: sr r11, [AUX_IRQ_ACT] b .Lexcept_ret -END(ret_from_exception) +SYM_FUNC_END(ret_from_exception) diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S index 60406ec62eb8..79409b518a09 100644 --- a/arch/arc/kernel/entry.S +++ b/arch/arc/kernel/entry.S @@ -280,7 +280,7 @@ END(EV_Trap) ; ; If ret to user mode do we need to handle signals, schedule() et al. -ENTRY(ret_from_exception) +SYM_FUNC_START_NOALIGN(ret_from_exception) ; Pre-{IRQ,Trap,Exception} K/U mode from pt_regs->status32 ld r8, [sp, PT_status32] ; returning to User/Kernel Mode @@ -373,4 +373,3 @@ resume_kernel_mode: b .Lrestore_regs ##### DONT ADD CODE HERE - .Lrestore_regs actually follows in entry-<isa>.S - -- 2.21.1 _______________________________________________ linux-snps-arc mailing list linux-snps-arc@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-snps-arc