__GEN_COMMON_BODY system_reset
 
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      system_reset_exception
+       bl      CFUNC(system_reset_exception)
 
        /* Clear MSR_RI before setting SRR0 and SRR1. */
        li      r9,0
 END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)
        addi    r3,r1,STACK_INT_FRAME_REGS
 BEGIN_FTR_SECTION
-       bl      machine_check_early_boot
+       bl      CFUNC(machine_check_early_boot)
 END_FTR_SECTION(0, 1)     // nop out after boot
-       bl      machine_check_early
+       bl      CFUNC(machine_check_early)
        std     r3,RESULT(r1)   /* Save result */
        ld      r12,_MSR(r1)
 
         * Queue up the MCE event so that we can log it later, while
         * returning from kernel or opal call.
         */
-       bl      machine_check_queue_event
+       bl      CFUNC(machine_check_queue_event)
        MACHINE_CHECK_HANDLER_WINDUP
        RFI_TO_KERNEL
 
         */
        GEN_COMMON machine_check
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      machine_check_exception_async
+       bl      CFUNC(machine_check_exception_async)
        b       interrupt_return_srr
 
 
  * done. Queue the event then call the idle code to do the wake up.
  */
 EXC_COMMON_BEGIN(machine_check_idle_common)
-       bl      machine_check_queue_event
+       bl      CFUNC(machine_check_queue_event)
 
        /*
         * GPR-loss wakeups are relatively straightforward, because the
 BEGIN_FTR_SECTION
        li      r10,0 /* clear MSR_RI */
        mtmsrd  r10,1
-       bl      disable_machine_check
+       bl      CFUNC(disable_machine_check)
 END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)
        ld      r10,PACAKMSR(r13)
        li      r3,MSR_ME
         * the early handler which is a true NMI.
         */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      machine_check_exception
+       bl      CFUNC(machine_check_exception)
 
        /*
         * We will not reach here. Even if we did, there is no way out.
         * Call unrecoverable_exception and die.
         */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      unrecoverable_exception
+       bl      CFUNC(unrecoverable_exception)
        b       .
 
 
        bne-    1f
 #ifdef CONFIG_PPC_64S_HASH_MMU
 BEGIN_MMU_FTR_SECTION
-       bl      do_hash_fault
+       bl      CFUNC(do_hash_fault)
 MMU_FTR_SECTION_ELSE
-       bl      do_page_fault
+       bl      CFUNC(do_page_fault)
 ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX)
 #else
-       bl      do_page_fault
+       bl      CFUNC(do_page_fault)
 #endif
        b       interrupt_return_srr
 
-1:     bl      do_break
+1:     bl      CFUNC(do_break)
        /*
         * do_break() may have changed the NV GPRS while handling a breakpoint.
         * If so, we need to restore them with their updated values.
 BEGIN_MMU_FTR_SECTION
        /* HPT case, do SLB fault */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      do_slb_fault
+       bl      CFUNC(do_slb_fault)
        cmpdi   r3,0
        bne-    1f
        b       fast_interrupt_return_srr
 #endif
        std     r3,RESULT(r1)
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      do_bad_segment_interrupt
+       bl      CFUNC(do_bad_segment_interrupt)
        b       interrupt_return_srr
 
 
        addi    r3,r1,STACK_INT_FRAME_REGS
 #ifdef CONFIG_PPC_64S_HASH_MMU
 BEGIN_MMU_FTR_SECTION
-       bl      do_hash_fault
+       bl      CFUNC(do_hash_fault)
 MMU_FTR_SECTION_ELSE
-       bl      do_page_fault
+       bl      CFUNC(do_page_fault)
 ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX)
 #else
-       bl      do_page_fault
+       bl      CFUNC(do_page_fault)
 #endif
        b       interrupt_return_srr
 
 BEGIN_MMU_FTR_SECTION
        /* HPT case, do SLB fault */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      do_slb_fault
+       bl      CFUNC(do_slb_fault)
        cmpdi   r3,0
        bne-    1f
        b       fast_interrupt_return_srr
 #endif
        std     r3,RESULT(r1)
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      do_bad_segment_interrupt
+       bl      CFUNC(do_bad_segment_interrupt)
        b       interrupt_return_srr
 
 
 EXC_COMMON_BEGIN(hardware_interrupt_common)
        GEN_COMMON hardware_interrupt
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      do_IRQ
+       bl      CFUNC(do_IRQ)
        BEGIN_FTR_SECTION
        b       interrupt_return_hsrr
        FTR_SECTION_ELSE
 EXC_COMMON_BEGIN(alignment_common)
        GEN_COMMON alignment
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      alignment_exception
+       bl      CFUNC(alignment_exception)
        HANDLER_RESTORE_NVGPRS() /* instruction emulation may change GPRs */
        b       interrupt_return_srr
 
 
 .Ldo_program_check:
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      program_check_exception
+       bl      CFUNC(program_check_exception)
        HANDLER_RESTORE_NVGPRS() /* instruction emulation may change GPRs */
        b       interrupt_return_srr
 
        GEN_COMMON fp_unavailable
        bne     1f                      /* if from user, just load it up */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      kernel_fp_unavailable_exception
+       bl      CFUNC(kernel_fp_unavailable_exception)
 0:     trap
        EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0
 1:
        bne-    2f
 END_FTR_SECTION_IFSET(CPU_FTR_TM)
 #endif
-       bl      load_up_fpu
+       bl      CFUNC(load_up_fpu)
        b       fast_interrupt_return_srr
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 2:     /* User process was in a transaction */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      fp_unavailable_tm
+       bl      CFUNC(fp_unavailable_tm)
        b       interrupt_return_srr
 #endif
 
 EXC_COMMON_BEGIN(decrementer_common)
        GEN_COMMON decrementer
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      timer_interrupt
+       bl      CFUNC(timer_interrupt)
        b       interrupt_return_srr
 
 
        GEN_COMMON doorbell_super
        addi    r3,r1,STACK_INT_FRAME_REGS
 #ifdef CONFIG_PPC_DOORBELL
-       bl      doorbell_exception
+       bl      CFUNC(doorbell_exception)
 #else
-       bl      unknown_async_exception
+       bl      CFUNC(unknown_async_exception)
 #endif
        b       interrupt_return_srr
 
 EXC_COMMON_BEGIN(single_step_common)
        GEN_COMMON single_step
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      single_step_exception
+       bl      CFUNC(single_step_exception)
        b       interrupt_return_srr
 
 
        GEN_COMMON h_data_storage
        addi    r3,r1,STACK_INT_FRAME_REGS
 BEGIN_MMU_FTR_SECTION
-       bl      do_bad_page_fault_segv
+       bl      CFUNC(do_bad_page_fault_segv)
 MMU_FTR_SECTION_ELSE
-       bl      unknown_exception
+       bl      CFUNC(unknown_exception)
 ALT_MMU_FTR_SECTION_END_IFSET(MMU_FTR_TYPE_RADIX)
        b       interrupt_return_hsrr
 
 EXC_COMMON_BEGIN(h_instr_storage_common)
        GEN_COMMON h_instr_storage
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      unknown_exception
+       bl      CFUNC(unknown_exception)
        b       interrupt_return_hsrr
 
 
 EXC_COMMON_BEGIN(emulation_assist_common)
        GEN_COMMON emulation_assist
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      emulation_assist_interrupt
+       bl      CFUNC(emulation_assist_interrupt)
        HANDLER_RESTORE_NVGPRS() /* instruction emulation may change GPRs */
        b       interrupt_return_hsrr
 
        __GEN_COMMON_BODY hmi_exception_early
 
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      hmi_exception_realmode
+       bl      CFUNC(hmi_exception_realmode)
        cmpdi   cr0,r3,0
        bne     1f
 
 EXC_COMMON_BEGIN(hmi_exception_common)
        GEN_COMMON hmi_exception
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      handle_hmi_exception
+       bl      CFUNC(handle_hmi_exception)
        b       interrupt_return_hsrr
 
 
        GEN_COMMON h_doorbell
        addi    r3,r1,STACK_INT_FRAME_REGS
 #ifdef CONFIG_PPC_DOORBELL
-       bl      doorbell_exception
+       bl      CFUNC(doorbell_exception)
 #else
-       bl      unknown_async_exception
+       bl      CFUNC(unknown_async_exception)
 #endif
        b       interrupt_return_hsrr
 
 EXC_COMMON_BEGIN(h_virt_irq_common)
        GEN_COMMON h_virt_irq
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      do_IRQ
+       bl      CFUNC(do_IRQ)
        b       interrupt_return_hsrr
 
 
        lbz     r4,PACAIRQSOFTMASK(r13)
        cmpdi   r4,IRQS_ENABLED
        bne     1f
-       bl      performance_monitor_exception_async
+       bl      CFUNC(performance_monitor_exception_async)
        b       interrupt_return_srr
 1:
-       bl      performance_monitor_exception_nmi
+       bl      CFUNC(performance_monitor_exception_nmi)
        /* Clear MSR_RI before setting SRR0 and SRR1. */
        li      r9,0
        mtmsrd  r9,1
        bne-    2f
   END_FTR_SECTION_NESTED(CPU_FTR_TM, CPU_FTR_TM, 69)
 #endif
-       bl      load_up_altivec
+       bl      CFUNC(load_up_altivec)
        b       fast_interrupt_return_srr
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 2:     /* User process was in a transaction */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      altivec_unavailable_tm
+       bl      CFUNC(altivec_unavailable_tm)
        b       interrupt_return_srr
 #endif
 1:
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 #endif
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      altivec_unavailable_exception
+       bl      CFUNC(altivec_unavailable_exception)
        b       interrupt_return_srr
 
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 2:     /* User process was in a transaction */
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      vsx_unavailable_tm
+       bl      CFUNC(vsx_unavailable_tm)
        b       interrupt_return_srr
 #endif
 1:
 END_FTR_SECTION_IFSET(CPU_FTR_VSX)
 #endif
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      vsx_unavailable_exception
+       bl      CFUNC(vsx_unavailable_exception)
        b       interrupt_return_srr
 
 
 EXC_COMMON_BEGIN(facility_unavailable_common)
        GEN_COMMON facility_unavailable
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      facility_unavailable_exception
+       bl      CFUNC(facility_unavailable_exception)
        HANDLER_RESTORE_NVGPRS() /* instruction emulation may change GPRs */
        b       interrupt_return_srr
 
 EXC_COMMON_BEGIN(h_facility_unavailable_common)
        GEN_COMMON h_facility_unavailable
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      facility_unavailable_exception
+       bl      CFUNC(facility_unavailable_exception)
        /* XXX Shouldn't be necessary in practice */
        HANDLER_RESTORE_NVGPRS()
        b       interrupt_return_hsrr
 EXC_COMMON_BEGIN(cbe_system_error_common)
        GEN_COMMON cbe_system_error
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      cbe_system_error_exception
+       bl      CFUNC(cbe_system_error_exception)
        b       interrupt_return_hsrr
 
 #else /* CONFIG_CBE_RAS */
 EXC_COMMON_BEGIN(instruction_breakpoint_common)
        GEN_COMMON instruction_breakpoint
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      instruction_breakpoint_exception
+       bl      CFUNC(instruction_breakpoint_exception)
        b       interrupt_return_srr
 
 
 EXC_COMMON_BEGIN(denorm_exception_common)
        GEN_COMMON denorm_exception
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      unknown_exception
+       bl      CFUNC(unknown_exception)
        b       interrupt_return_hsrr
 
 
 EXC_COMMON_BEGIN(cbe_maintenance_common)
        GEN_COMMON cbe_maintenance
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      cbe_maintenance_exception
+       bl      CFUNC(cbe_maintenance_exception)
        b       interrupt_return_hsrr
 
 #else /* CONFIG_CBE_RAS */
        GEN_COMMON altivec_assist
        addi    r3,r1,STACK_INT_FRAME_REGS
 #ifdef CONFIG_ALTIVEC
-       bl      altivec_assist_exception
+       bl      CFUNC(altivec_assist_exception)
        HANDLER_RESTORE_NVGPRS() /* instruction emulation may change GPRs */
 #else
-       bl      unknown_exception
+       bl      CFUNC(unknown_exception)
 #endif
        b       interrupt_return_srr
 
 EXC_COMMON_BEGIN(cbe_thermal_common)
        GEN_COMMON cbe_thermal
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      cbe_thermal_exception
+       bl      CFUNC(cbe_thermal_exception)
        b       interrupt_return_hsrr
 
 #else /* CONFIG_CBE_RAS */
        __GEN_COMMON_BODY soft_nmi
 
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      soft_nmi_interrupt
+       bl      CFUNC(soft_nmi_interrupt)
 
        /* Clear MSR_RI before setting SRR0 and SRR1. */
        li      r9,0
 
         * state of kernel code.
         */
        SANITIZE_SYSCALL_GPRS()
-       bl      system_call_exception
+       bl      CFUNC(system_call_exception)
 
 .Lsyscall_vectored_\name\()_exit:
        addi    r4,r1,STACK_INT_FRAME_REGS
        li      r5,1 /* scv */
-       bl      syscall_exit_prepare
+       bl      CFUNC(syscall_exit_prepare)
        std     r1,PACA_EXIT_SAVE_R1(r13) /* save r1 for restart */
 .Lsyscall_vectored_\name\()_rst_start:
        lbz     r11,PACAIRQHAPPENED(r13)
        addi    r4,r1,STACK_INT_FRAME_REGS
        li      r11,IRQS_ALL_DISABLED
        stb     r11,PACAIRQSOFTMASK(r13)
-       bl      syscall_exit_restart
+       bl      CFUNC(syscall_exit_restart)
        std     r1,PACA_EXIT_SAVE_R1(r13) /* save r1 for restart */
        b       .Lsyscall_vectored_\name\()_rst_start
 1:
         * state of kernel code.
         */
        SANITIZE_SYSCALL_GPRS()
-       bl      system_call_exception
+       bl      CFUNC(system_call_exception)
 
 .Lsyscall_exit:
        addi    r4,r1,STACK_INT_FRAME_REGS
        li      r5,0 /* !scv */
-       bl      syscall_exit_prepare
+       bl      CFUNC(syscall_exit_prepare)
        std     r1,PACA_EXIT_SAVE_R1(r13) /* save r1 for restart */
 #ifdef CONFIG_PPC_BOOK3S
 .Lsyscall_rst_start:
        addi    r4,r1,STACK_INT_FRAME_REGS
        li      r11,IRQS_ALL_DISABLED
        stb     r11,PACAIRQSOFTMASK(r13)
-       bl      syscall_exit_restart
+       bl      CFUNC(syscall_exit_restart)
        std     r1,PACA_EXIT_SAVE_R1(r13) /* save r1 for restart */
        b       .Lsyscall_rst_start
 1:
        li      r3,0 /* 0 return value, no EMULATE_STACK_STORE */
        bne+    .Lfast_kernel_interrupt_return_srr
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      unrecoverable_exception
+       bl      CFUNC(unrecoverable_exception)
        b       . /* should not get here */
 #else
        bne     .Lfast_user_interrupt_return_srr
 interrupt_return_\srr\()_user: /* make backtraces match the _kernel variant */
 _ASM_NOKPROBE_SYMBOL(interrupt_return_\srr\()_user)
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      interrupt_exit_user_prepare
+       bl      CFUNC(interrupt_exit_user_prepare)
 #ifndef CONFIG_INTERRUPT_SANITIZE_REGISTERS
        cmpdi   r3,0
        bne-    .Lrestore_nvgprs_\srr
        addi    r3,r1,STACK_INT_FRAME_REGS
        li      r11,IRQS_ALL_DISABLED
        stb     r11,PACAIRQSOFTMASK(r13)
-       bl      interrupt_exit_user_restart
+       bl      CFUNC(interrupt_exit_user_restart)
        std     r1,PACA_EXIT_SAVE_R1(r13) /* save r1 for restart */
        b       .Linterrupt_return_\srr\()_user_rst_start
 1:
 interrupt_return_\srr\()_kernel:
 _ASM_NOKPROBE_SYMBOL(interrupt_return_\srr\()_kernel)
        addi    r3,r1,STACK_INT_FRAME_REGS
-       bl      interrupt_exit_kernel_prepare
+       bl      CFUNC(interrupt_exit_kernel_prepare)
 
        std     r1,PACA_EXIT_SAVE_R1(r13) /* save r1 for restart */
 .Linterrupt_return_\srr\()_kernel_rst_start:
        addi    r3,r1,STACK_INT_FRAME_REGS
        li      r11,IRQS_ALL_DISABLED
        stb     r11,PACAIRQSOFTMASK(r13)
-       bl      interrupt_exit_kernel_restart
+       bl      CFUNC(interrupt_exit_kernel_restart)
        std     r1,PACA_EXIT_SAVE_R1(r13) /* save r1 for restart */
        b       .Linterrupt_return_\srr\()_kernel_rst_start
 1:
 
 #ifdef CONFIG_PPC_BOOK3S
 _GLOBAL(ret_from_fork_scv)
-       bl      schedule_tail
+       bl      CFUNC(schedule_tail)
        HANDLER_RESTORE_NVGPRS()
        li      r3,0    /* fork() return value */
        b       .Lsyscall_vectored_common_exit
 #endif
 
 _GLOBAL(ret_from_fork)
-       bl      schedule_tail
+       bl      CFUNC(schedule_tail)
        HANDLER_RESTORE_NVGPRS()
        li      r3,0    /* fork() return value */
        b       .Lsyscall_exit
 
 _GLOBAL(ret_from_kernel_user_thread)
-       bl      schedule_tail
+       bl      CFUNC(schedule_tail)
        mtctr   r14
        mr      r3,r15
 #ifdef CONFIG_PPC64_ELF_ABI_V2