aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel')
-rw-r--r--arch/i386/kernel/asm-offsets.c1
-rw-r--r--arch/i386/kernel/entry.S16
2 files changed, 16 insertions, 1 deletions
diff --git a/arch/i386/kernel/asm-offsets.c b/arch/i386/kernel/asm-offsets.c
index a7c2947b3966..25f7eb513928 100644
--- a/arch/i386/kernel/asm-offsets.c
+++ b/arch/i386/kernel/asm-offsets.c
@@ -61,6 +61,7 @@ void foo(void)
61 OFFSET(TI_addr_limit, thread_info, addr_limit); 61 OFFSET(TI_addr_limit, thread_info, addr_limit);
62 OFFSET(TI_restart_block, thread_info, restart_block); 62 OFFSET(TI_restart_block, thread_info, restart_block);
63 OFFSET(TI_sysenter_return, thread_info, sysenter_return); 63 OFFSET(TI_sysenter_return, thread_info, sysenter_return);
64 OFFSET(TI_cpu, thread_info, cpu);
64 BLANK(); 65 BLANK();
65 66
66 OFFSET(GDS_size, Xgt_desc_struct, size); 67 OFFSET(GDS_size, Xgt_desc_struct, size);
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
index ffb236544270..32980b834935 100644
--- a/arch/i386/kernel/entry.S
+++ b/arch/i386/kernel/entry.S
@@ -1030,7 +1030,21 @@ ENTRY(xen_hypervisor_callback)
1030 CFI_ADJUST_CFA_OFFSET 4 1030 CFI_ADJUST_CFA_OFFSET 4
1031 SAVE_ALL 1031 SAVE_ALL
1032 TRACE_IRQS_OFF 1032 TRACE_IRQS_OFF
1033 mov %esp, %eax 1033
1034 /* Check to see if we got the event in the critical
1035 region in xen_iret_direct, after we've reenabled
1036 events and checked for pending events. This simulates
1037 iret instruction's behaviour where it delivers a
1038 pending interrupt when enabling interrupts. */
1039 movl PT_EIP(%esp),%eax
1040 cmpl $xen_iret_start_crit,%eax
1041 jb 1f
1042 cmpl $xen_iret_end_crit,%eax
1043 jae 1f
1044
1045 call xen_iret_crit_fixup
1046
10471: mov %esp, %eax
1034 call xen_evtchn_do_upcall 1048 call xen_evtchn_do_upcall
1035 jmp ret_from_intr 1049 jmp ret_from_intr
1036 CFI_ENDPROC 1050 CFI_ENDPROC