CFI_ENDPROC
  END(common_interrupt)
  
- /*
-  * End of kprobes section
-  */
-        .popsection
- 
 +      /*
 +       * If IRET takes a fault on the espfix stack, then we
 +       * end up promoting it to a doublefault.  In that case,
 +       * modify the stack to make it look like we just entered
 +       * the #GP handler from user space, similar to bad_iret.
 +       */
 +#ifdef CONFIG_X86_ESPFIX64
 +      ALIGN
 +__do_double_fault:
 +      XCPT_FRAME 1 RDI+8
 +      movq RSP(%rdi),%rax             /* Trap on the espfix stack? */
 +      sarq $PGDIR_SHIFT,%rax
 +      cmpl $ESPFIX_PGD_ENTRY,%eax
 +      jne do_double_fault             /* No, just deliver the fault */
 +      cmpl $__KERNEL_CS,CS(%rdi)
 +      jne do_double_fault
 +      movq RIP(%rdi),%rax
 +      cmpq $irq_return_iret,%rax
 +#ifdef CONFIG_PARAVIRT
 +      je 1f
 +      cmpq $native_iret,%rax
 +#endif
 +      jne do_double_fault             /* This shouldn't happen... */
 +1:
 +      movq PER_CPU_VAR(kernel_stack),%rax
 +      subq $(6*8-KERNEL_STACK_OFFSET),%rax    /* Reset to original stack */
 +      movq %rax,RSP(%rdi)
 +      movq $0,(%rax)                  /* Missing (lost) #GP error code */
 +      movq $general_protection,RIP(%rdi)
 +      retq
 +      CFI_ENDPROC
 +END(__do_double_fault)
 +#else
 +# define __do_double_fault do_double_fault
 +#endif
 +
  /*
   * APIC interrupts.
   */
        hyperv_callback_vector hyperv_vector_handler
  #endif /* CONFIG_HYPERV */
  
- /*
-  * Some functions should be protected against kprobes
-  */
-       .pushsection .kprobes.text, "ax"
- 
 -paranoidzeroentry_ist debug do_debug DEBUG_STACK
 -paranoidzeroentry_ist int3 do_int3 DEBUG_STACK
 -paranoiderrorentry stack_segment do_stack_segment
 +idtentry debug do_debug has_error_code=0 paranoid=1 shift_ist=DEBUG_STACK
 +idtentry int3 do_int3 has_error_code=0 paranoid=1 shift_ist=DEBUG_STACK
 +idtentry stack_segment do_stack_segment has_error_code=1 paranoid=1
  #ifdef CONFIG_XEN
 -zeroentry xen_debug do_debug
 -zeroentry xen_int3 do_int3
 -errorentry xen_stack_segment do_stack_segment
 +idtentry xen_debug do_debug has_error_code=0
 +idtentry xen_int3 do_int3 has_error_code=0
 +idtentry xen_stack_segment do_stack_segment has_error_code=1
  #endif
 -errorentry general_protection do_general_protection
 -trace_errorentry page_fault do_page_fault
 +idtentry general_protection do_general_protection has_error_code=1
 +trace_idtentry page_fault do_page_fault has_error_code=1
  #ifdef CONFIG_KVM_GUEST
 -errorentry async_page_fault do_async_page_fault
 +idtentry async_page_fault do_async_page_fault has_error_code=1
  #endif
  #ifdef CONFIG_X86_MCE
 -paranoidzeroentry machine_check *machine_check_vector(%rip)
 +idtentry machine_check has_error_code=0 paranoid=1 do_sym=*machine_check_vector(%rip)
  #endif
  
        /*