diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-02-27 17:55:22 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-02-27 17:55:22 +0100 |
commit | 444c98e4a7412604d82a308c81b91961e32dbf59 (patch) | |
tree | c357282c876972ab9a157c5c9fac83e673e60dff | |
parent | 53fcd3bb76db7cd90ef64d60359532e30da10f7b (diff) | |
download | xen-444c98e4a7412604d82a308c81b91961e32dbf59.tar.gz xen-444c98e4a7412604d82a308c81b91961e32dbf59.tar.bz2 xen-444c98e4a7412604d82a308c81b91961e32dbf59.zip |
Check feature flag supervisor_mode_kernel in dom0 builder.
Signed-off-by: Keir Fraser <keir@xensource.com>
-rw-r--r-- | xen/arch/x86/domain_build.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 361ca2485e..f60ac47fc6 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -802,6 +802,14 @@ int construct_dom0(struct domain *d, v->arch.guest_context.user_regs.fs &= ~3; v->arch.guest_context.user_regs.gs &= ~3; printk("Dom0 runs in ring 0 (supervisor mode)\n"); + if ( !test_bit(XENFEAT_supervisor_mode_kernel, + dom0_features_supported) ) + panic("Dom0 does not support supervisor-mode execution\n"); + } + else + { + if ( test_bit(XENFEAT_supervisor_mode_kernel, dom0_features_required) ) + panic("Dom0 requires supervisor-mode execution\n"); } rc = 0; |