]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'x86/asm'
authorIngo Molnar <mingo@kernel.org>
Thu, 22 May 2014 11:56:33 +0000 (13:56 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 22 May 2014 11:56:33 +0000 (13:56 +0200)
Conflicts:
arch/x86/kernel/entry_64.S

1  2 
arch/x86/kernel/entry_64.S

index b585c38d2488a966f3b93a1fa0df96e1d4316206,be846d2468f7a658b417d8534adcedd5353795ce..010ff94ce564cc6d1da04dde9f827291d8043512
@@@ -1351,39 -1284,19 +1346,19 @@@ idtentry \sym \do_sym has_error_code=\h
  .endm
  #endif
  
-       /* error code is on the stack already */
- .macro paranoiderrorentry sym do_sym
- ENTRY(\sym)
-       XCPT_FRAME
-       ASM_CLAC
-       PARAVIRT_ADJUST_EXCEPTION_FRAME
-       subq $ORIG_RAX-R15, %rsp
-       CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
-       call save_paranoid
-       DEFAULT_FRAME 0
-       TRACE_IRQS_OFF
-       movq %rsp,%rdi                  /* pt_regs pointer */
-       movq ORIG_RAX(%rsp),%rsi        /* get error code */
-       movq $-1,ORIG_RAX(%rsp)         /* no syscall to restart */
-       call \do_sym
-       jmp paranoid_exit               /* %ebx: no swapgs flag */
-       CFI_ENDPROC
- END(\sym)
- .endm
- zeroentry divide_error do_divide_error
- zeroentry overflow do_overflow
- zeroentry bounds do_bounds
- zeroentry invalid_op do_invalid_op
- zeroentry device_not_available do_device_not_available
- paranoiderrorentry double_fault __do_double_fault
- zeroentry coprocessor_segment_overrun do_coprocessor_segment_overrun
- errorentry invalid_TSS do_invalid_TSS
- errorentry segment_not_present do_segment_not_present
- zeroentry spurious_interrupt_bug do_spurious_interrupt_bug
- zeroentry coprocessor_error do_coprocessor_error
- errorentry alignment_check do_alignment_check
- zeroentry simd_coprocessor_error do_simd_coprocessor_error
+ idtentry divide_error do_divide_error has_error_code=0
+ idtentry overflow do_overflow has_error_code=0
+ idtentry bounds do_bounds has_error_code=0
+ idtentry invalid_op do_invalid_op has_error_code=0
+ idtentry device_not_available do_device_not_available has_error_code=0
 -idtentry double_fault do_double_fault has_error_code=1 paranoid=1
++idtentry double_fault __do_double_fault has_error_code=1 paranoid=1
+ idtentry coprocessor_segment_overrun do_coprocessor_segment_overrun has_error_code=0
+ idtentry invalid_TSS do_invalid_TSS has_error_code=1
+ idtentry segment_not_present do_segment_not_present has_error_code=1
+ idtentry spurious_interrupt_bug do_spurious_interrupt_bug has_error_code=0
+ idtentry coprocessor_error do_coprocessor_error has_error_code=0
+ idtentry alignment_check do_alignment_check has_error_code=1
+ idtentry simd_coprocessor_error do_simd_coprocessor_error has_error_code=0
  
  
        /* Reload gs selector with exception handling */
@@@ -1539,21 -1452,26 +1514,21 @@@ apicinterrupt3 HYPERVISOR_CALLBACK_VECT
        hyperv_callback_vector hyperv_vector_handler
  #endif /* CONFIG_HYPERV */
  
- paranoidzeroentry_ist debug do_debug DEBUG_STACK
- paranoidzeroentry_ist int3 do_int3 DEBUG_STACK
- paranoiderrorentry stack_segment do_stack_segment
 -/*
 - * Some functions should be protected against kprobes
 - */
 -      .pushsection .kprobes.text, "ax"
 -
+ 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
  
        /*