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:
kaf24@scramble.cl.cam.ac.uk committed 2004-11-27 18:16:32 +00:00
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:
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.