tracing: x86: trace isr_exit
We were missing exit from ISR.. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
390537bf68
commit
0be0743144
1 changed files with 16 additions and 14 deletions
|
@ -129,19 +129,6 @@ SECTION_FUNC(TEXT, _interrupt_enter)
|
||||||
*/
|
*/
|
||||||
pushl %edi
|
pushl %edi
|
||||||
|
|
||||||
|
|
||||||
#if defined(CONFIG_TRACING_ISR)
|
|
||||||
|
|
||||||
/* Save these as we are using to keep track of isr and isr_param */
|
|
||||||
pushl %eax
|
|
||||||
pushl %edx
|
|
||||||
|
|
||||||
call sys_trace_isr_enter
|
|
||||||
|
|
||||||
popl %edx
|
|
||||||
popl %eax
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* load %ecx with &_kernel */
|
/* load %ecx with &_kernel */
|
||||||
|
|
||||||
movl $_kernel, %ecx
|
movl $_kernel, %ecx
|
||||||
|
@ -192,6 +179,16 @@ alreadyOnIntStack:
|
||||||
pop %eax
|
pop %eax
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CONFIG_TRACING_ISR)
|
||||||
|
/* Save these as we are using to keep track of isr and isr_param */
|
||||||
|
pushl %eax
|
||||||
|
pushl %edx
|
||||||
|
call sys_trace_isr_enter
|
||||||
|
popl %edx
|
||||||
|
popl %eax
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_NESTED_INTERRUPTS
|
#ifdef CONFIG_NESTED_INTERRUPTS
|
||||||
sti /* re-enable interrupts */
|
sti /* re-enable interrupts */
|
||||||
#endif
|
#endif
|
||||||
|
@ -203,6 +200,12 @@ alreadyOnIntStack:
|
||||||
cli /* disable interrupts again */
|
cli /* disable interrupts again */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_TRACING_ISR)
|
||||||
|
pushl %eax
|
||||||
|
call sys_trace_isr_exit
|
||||||
|
popl %eax
|
||||||
|
#endif
|
||||||
|
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
#if defined(CONFIG_X2APIC)
|
#if defined(CONFIG_X2APIC)
|
||||||
xorl %edx, %edx
|
xorl %edx, %edx
|
||||||
|
@ -222,7 +225,6 @@ alreadyOnIntStack:
|
||||||
decl _kernel_offset_to_nested(%ecx) /* dec interrupt nest count */
|
decl _kernel_offset_to_nested(%ecx) /* dec interrupt nest count */
|
||||||
jne nestedInterrupt /* 'iret' if nested case */
|
jne nestedInterrupt /* 'iret' if nested case */
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_PREEMPT_ENABLED
|
#ifdef CONFIG_PREEMPT_ENABLED
|
||||||
movl _kernel_offset_to_current(%ecx), %edx
|
movl _kernel_offset_to_current(%ecx), %edx
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue