aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2011-10-26 20:26:17 -0400
committerRusty Russell <rusty@rustcorp.com.au>2011-10-26 20:26:17 -0400
commit89cfc99177c9270c5c6d429f6c5177ab3428ad57 (patch)
treef8336b3a477325305746cc425181d5d12361d7f7 /arch
parentb56e3215d4331bff9b6d5e5f68bc1ec5cb01e650 (diff)
lguest: don't allow KVM-detection cpuid.
Host might be running under KVM, but we shouldn't allow Guest to think it can use KVM hypercalls (it can't, and it will embarrass itself if it tries). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/lguest/boot.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 13ee258442ae..f63da5ef217c 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -70,6 +70,7 @@
70#include <asm/i387.h> 70#include <asm/i387.h>
71#include <asm/stackprotector.h> 71#include <asm/stackprotector.h>
72#include <asm/reboot.h> /* for struct machine_ops */ 72#include <asm/reboot.h> /* for struct machine_ops */
73#include <asm/kvm_para.h>
73 74
74/*G:010 75/*G:010
75 * Welcome to the Guest! 76 * Welcome to the Guest!
@@ -455,6 +456,15 @@ static void lguest_cpuid(unsigned int *ax, unsigned int *bx,
455 *ax &= 0xFFFFF0FF; 456 *ax &= 0xFFFFF0FF;
456 *ax |= 0x00000500; 457 *ax |= 0x00000500;
457 break; 458 break;
459
460 /*
461 * This is used to detect if we're running under KVM. We might be,
462 * but that's a Host matter, not us. So say we're not.
463 */
464 case KVM_CPUID_SIGNATURE:
465 *bx = *cx = *dx = 0;
466 break;
467
458 /* 468 /*
459 * 0x80000000 returns the highest Extended Function, so we futureproof 469 * 0x80000000 returns the highest Extended Function, so we futureproof
460 * like we do above by limiting it to known fields. 470 * like we do above by limiting it to known fields.