mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1159.187.26 (41a8c480rckpADNC0Lh2VZmtPTNKeg)
We must load shared_info into %esi at every external entry point into entry.S (i.e., every label marked ENTRY()). I was missing at least resume_userspace which is essential for vm86.
This commit is contained in:
1 parent
8d3c9d9309
commit
93b7067dd7
1 file changed
+3
@@ -194,6 +194,7 @@ ENTRY(ret_from_fork)
|
||||
call schedule_tail
|
||||
GET_THREAD_INFO(%ebp)
|
||||
popl %eax
|
||||
movl HYPERVISOR_shared_info, %esi
|
||||
jmp syscall_exit
|
||||
|
||||
/*
|
||||
@@ -214,6 +215,7 @@ ret_from_intr:
|
||||
testl $(VM_MASK | 2), %eax
|
||||
jz resume_kernel # returning to kernel or vm86-space
|
||||
ENTRY(resume_userspace)
|
||||
movl HYPERVISOR_shared_info, %esi
|
||||
XEN_BLOCK_EVENTS(%esi) # make sure we don't miss an interrupt
|
||||
# setting need_resched or sigpending
|
||||
# between sampling and the iret
|
||||
@@ -225,6 +227,7 @@ ENTRY(resume_userspace)
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
ENTRY(resume_kernel)
|
||||
movl HYPERVISOR_shared_info, %esi
|
||||
cmpl $0,TI_preempt_count(%ebp) # non-zero preempt_count ?
|
||||
jnz restore_all
|
||||
need_resched:
|
||||
|
||||