direct-io.hg

changeset 3178:0581754a3e58

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.
author kaf24@scramble.cl.cam.ac.uk
date Sat Nov 27 18:16:32 2004 +0000 (2004-11-27)
parents 65f69f55f074
children 01664279f443 4580e96f30e1
files linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S
line diff
     1.1 --- a/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S	Sat Nov 27 16:51:57 2004 +0000
     1.2 +++ b/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S	Sat Nov 27 18:16:32 2004 +0000
     1.3 @@ -194,6 +194,7 @@ ENTRY(ret_from_fork)
     1.4  	call schedule_tail
     1.5  	GET_THREAD_INFO(%ebp)
     1.6  	popl %eax
     1.7 +	movl HYPERVISOR_shared_info, %esi
     1.8  	jmp syscall_exit
     1.9  
    1.10  /*
    1.11 @@ -214,6 +215,7 @@ ret_from_intr:
    1.12  	testl $(VM_MASK | 2), %eax
    1.13  	jz resume_kernel		# returning to kernel or vm86-space
    1.14  ENTRY(resume_userspace)
    1.15 +	movl HYPERVISOR_shared_info, %esi
    1.16  	XEN_BLOCK_EVENTS(%esi)		# make sure we don't miss an interrupt
    1.17  					# setting need_resched or sigpending
    1.18  					# between sampling and the iret
    1.19 @@ -225,6 +227,7 @@ ENTRY(resume_userspace)
    1.20  
    1.21  #ifdef CONFIG_PREEMPT
    1.22  ENTRY(resume_kernel)
    1.23 +	movl HYPERVISOR_shared_info, %esi
    1.24  	cmpl $0,TI_preempt_count(%ebp)	# non-zero preempt_count ?
    1.25  	jnz restore_all
    1.26  need_resched: