aboutsummaryrefslogtreecommitdiffstats
path: root/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-04-28 13:25:00 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-04-28 13:25:00 +0000
commita8155b307121742a75fa17058ab69161c649989f (patch)
treeeb266dce37fdeb22d2dece4052ddaabd0febeac5 /xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c
parentee2dfef113a6611922fc5ba9c98262037443453c (diff)
downloadxen-a8155b307121742a75fa17058ab69161c649989f.tar.gz
xen-a8155b307121742a75fa17058ab69161c649989f.tar.bz2
xen-a8155b307121742a75fa17058ab69161c649989f.zip
bitkeeper revision 1.184.5.1 (3ead2bacOfPX2Bo4kzErV1yUs0q1qA)
Many files: Pass dom_id and other flags to domains in start_info structure. Allow changing of IO privilege level via new hypercall.
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c')
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c
index d4db667474..a7c0755d38 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/process.c
@@ -363,7 +363,12 @@ void __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
}
if ( next->esp0 != 0 )
+ {
queue_multicall2(__HYPERVISOR_stack_switch, __KERNEL_DS, next->esp0);
+ /* Next call will silently fail if we are a non-privileged guest OS. */
+ queue_multicall1(__HYPERVISOR_iopl,
+ ((((struct pt_regs *)next->esp0)-1)->eflags>>12)&3);
+ }
/* EXECUTE ALL TASK SWITCH XEN SYSCALLS AT THIS POINT. */
execute_multicall_list();