LoongArch: Use SYM_CODE_* to annotate exception handlers
authorTiezhu Yang <yangtiezhu@loongson.cn>
Wed, 18 Oct 2023 00:42:52 +0000 (08:42 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Wed, 18 Oct 2023 00:42:52 +0000 (08:42 +0800)
As described in include/linux/linkage.h,

  FUNC -- C-like functions (proper stack frame etc.)
  CODE -- non-C code (e.g. irq handlers with different, special stack etc.)

  SYM_FUNC_{START, END} -- use for global functions
  SYM_CODE_{START, END} -- use for non-C (special) functions

So use SYM_CODE_* to annotate exception handlers.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/include/asm/linkage.h
arch/loongarch/kernel/entry.S
arch/loongarch/kernel/genex.S
arch/loongarch/mm/tlbex.S

index 81b0c4cfbf4f24efb57335d76ea03921a1e04e4b..e2eca1a25b4ef7af3f5fb788d2a9e2d8fd6592d8 100644 (file)
        .cfi_endproc;                                   \
        SYM_END(name, SYM_T_FUNC)
 
+#define SYM_CODE_START(name)                           \
+       SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)      \
+       .cfi_startproc;
+
+#define SYM_CODE_END(name)                             \
+       .cfi_endproc;                                   \
+       SYM_END(name, SYM_T_NONE)
+
 #endif
index 65518bb8f47285e406b95f8ba4c63a29e2c23a4a..1ec8e4c4cc2bd89d5af2492b0b31158ce8b53f9e 100644 (file)
@@ -18,7 +18,7 @@
        .text
        .cfi_sections   .debug_frame
        .align  5
-SYM_FUNC_START(handle_syscall)
+SYM_CODE_START(handle_syscall)
        csrrd           t0, PERCPU_BASE_KS
        la.pcrel        t1, kernelsp
        add.d           t1, t1, t0
@@ -71,7 +71,7 @@ SYM_FUNC_START(handle_syscall)
        bl              do_syscall
 
        RESTORE_ALL_AND_RET
-SYM_FUNC_END(handle_syscall)
+SYM_CODE_END(handle_syscall)
 _ASM_NOKPROBE(handle_syscall)
 
 SYM_CODE_START(ret_from_fork)
index 78f0663846575b584b4554f99e1d3436eea9acec..2bb3aa2dcfcb2e67935389d76585e813c7a6e169 100644 (file)
@@ -31,7 +31,7 @@ SYM_FUNC_START(__arch_cpu_idle)
 1:     jr      ra
 SYM_FUNC_END(__arch_cpu_idle)
 
-SYM_FUNC_START(handle_vint)
+SYM_CODE_START(handle_vint)
        BACKUP_T0T1
        SAVE_ALL
        la_abs  t1, __arch_cpu_idle
@@ -46,11 +46,11 @@ SYM_FUNC_START(handle_vint)
        la_abs  t0, do_vint
        jirl    ra, t0, 0
        RESTORE_ALL_AND_RET
-SYM_FUNC_END(handle_vint)
+SYM_CODE_END(handle_vint)
 
-SYM_FUNC_START(except_vec_cex)
+SYM_CODE_START(except_vec_cex)
        b       cache_parity_error
-SYM_FUNC_END(except_vec_cex)
+SYM_CODE_END(except_vec_cex)
 
        .macro  build_prep_badv
        csrrd   t0, LOONGARCH_CSR_BADV
@@ -66,7 +66,7 @@ SYM_FUNC_END(except_vec_cex)
 
        .macro  BUILD_HANDLER exception handler prep
        .align  5
-       SYM_FUNC_START(handle_\exception)
+       SYM_CODE_START(handle_\exception)
        666:
        BACKUP_T0T1
        SAVE_ALL
@@ -76,7 +76,7 @@ SYM_FUNC_END(except_vec_cex)
        jirl    ra, t0, 0
        668:
        RESTORE_ALL_AND_RET
-       SYM_FUNC_END(handle_\exception)
+       SYM_CODE_END(handle_\exception)
        SYM_DATA(unwind_hint_\exception, .word 668b - 666b)
        .endm
 
@@ -93,7 +93,7 @@ SYM_FUNC_END(except_vec_cex)
        BUILD_HANDLER watch watch none
        BUILD_HANDLER reserved reserved none    /* others */
 
-SYM_FUNC_START(handle_sys)
+SYM_CODE_START(handle_sys)
        la_abs  t0, handle_syscall
        jr      t0
-SYM_FUNC_END(handle_sys)
+SYM_CODE_END(handle_sys)
index ca17dd3a19153c10583f04f8bc24daf7fbd7eb3e..d5d682f3d29f3a808f37e1d23f2887d0ffece071 100644 (file)
@@ -17,7 +17,7 @@
 #define PTRS_PER_PTE_BITS      (PAGE_SHIFT - 3)
 
        .macro tlb_do_page_fault, write
-       SYM_FUNC_START(tlb_do_page_fault_\write)
+       SYM_CODE_START(tlb_do_page_fault_\write)
        SAVE_ALL
        csrrd           a2, LOONGARCH_CSR_BADV
        move            a0, sp
        li.w            a1, \write
        bl              do_page_fault
        RESTORE_ALL_AND_RET
-       SYM_FUNC_END(tlb_do_page_fault_\write)
+       SYM_CODE_END(tlb_do_page_fault_\write)
        .endm
 
        tlb_do_page_fault 0
        tlb_do_page_fault 1
 
-SYM_FUNC_START(handle_tlb_protect)
+SYM_CODE_START(handle_tlb_protect)
        BACKUP_T0T1
        SAVE_ALL
        move            a0, sp
@@ -41,9 +41,9 @@ SYM_FUNC_START(handle_tlb_protect)
        la_abs          t0, do_page_fault
        jirl            ra, t0, 0
        RESTORE_ALL_AND_RET
-SYM_FUNC_END(handle_tlb_protect)
+SYM_CODE_END(handle_tlb_protect)
 
-SYM_FUNC_START(handle_tlb_load)
+SYM_CODE_START(handle_tlb_load)
        csrwr           t0, EXCEPTION_KS0
        csrwr           t1, EXCEPTION_KS1
        csrwr           ra, EXCEPTION_KS2
@@ -187,16 +187,16 @@ nopage_tlb_load:
        csrrd           ra, EXCEPTION_KS2
        la_abs          t0, tlb_do_page_fault_0
        jr              t0
-SYM_FUNC_END(handle_tlb_load)
+SYM_CODE_END(handle_tlb_load)
 
-SYM_FUNC_START(handle_tlb_load_ptw)
+SYM_CODE_START(handle_tlb_load_ptw)
        csrwr           t0, LOONGARCH_CSR_KS0
        csrwr           t1, LOONGARCH_CSR_KS1
        la_abs          t0, tlb_do_page_fault_0
        jr              t0
-SYM_FUNC_END(handle_tlb_load_ptw)
+SYM_CODE_END(handle_tlb_load_ptw)
 
-SYM_FUNC_START(handle_tlb_store)
+SYM_CODE_START(handle_tlb_store)
        csrwr           t0, EXCEPTION_KS0
        csrwr           t1, EXCEPTION_KS1
        csrwr           ra, EXCEPTION_KS2
@@ -343,16 +343,16 @@ nopage_tlb_store:
        csrrd           ra, EXCEPTION_KS2
        la_abs          t0, tlb_do_page_fault_1
        jr              t0
-SYM_FUNC_END(handle_tlb_store)
+SYM_CODE_END(handle_tlb_store)
 
-SYM_FUNC_START(handle_tlb_store_ptw)
+SYM_CODE_START(handle_tlb_store_ptw)
        csrwr           t0, LOONGARCH_CSR_KS0
        csrwr           t1, LOONGARCH_CSR_KS1
        la_abs          t0, tlb_do_page_fault_1
        jr              t0
-SYM_FUNC_END(handle_tlb_store_ptw)
+SYM_CODE_END(handle_tlb_store_ptw)
 
-SYM_FUNC_START(handle_tlb_modify)
+SYM_CODE_START(handle_tlb_modify)
        csrwr           t0, EXCEPTION_KS0
        csrwr           t1, EXCEPTION_KS1
        csrwr           ra, EXCEPTION_KS2
@@ -497,16 +497,16 @@ nopage_tlb_modify:
        csrrd           ra, EXCEPTION_KS2
        la_abs          t0, tlb_do_page_fault_1
        jr              t0
-SYM_FUNC_END(handle_tlb_modify)
+SYM_CODE_END(handle_tlb_modify)
 
-SYM_FUNC_START(handle_tlb_modify_ptw)
+SYM_CODE_START(handle_tlb_modify_ptw)
        csrwr           t0, LOONGARCH_CSR_KS0
        csrwr           t1, LOONGARCH_CSR_KS1
        la_abs          t0, tlb_do_page_fault_1
        jr              t0
-SYM_FUNC_END(handle_tlb_modify_ptw)
+SYM_CODE_END(handle_tlb_modify_ptw)
 
-SYM_FUNC_START(handle_tlb_refill)
+SYM_CODE_START(handle_tlb_refill)
        csrwr           t0, LOONGARCH_CSR_TLBRSAVE
        csrrd           t0, LOONGARCH_CSR_PGD
        lddir           t0, t0, 3
@@ -521,4 +521,4 @@ SYM_FUNC_START(handle_tlb_refill)
        tlbfill
        csrrd           t0, LOONGARCH_CSR_TLBRSAVE
        ertn
-SYM_FUNC_END(handle_tlb_refill)
+SYM_CODE_END(handle_tlb_refill)