From: Yang, Wei Date: Tue, 14 Jun 2011 11:44:48 +0000 (+0100) Subject: x86/hvm: Make DRNG feature visible in CPUID X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=30090ad8567c97578099fb2aaec29a6a7c9f90a6;p=xen.git x86/hvm: Make DRNG feature visible in CPUID This patch exposes DRNG feature to HVM guests. The RDRAND instruction can provide software with sequences of random numbers generated from white noise. Signed-off-by: Yang, Wei --- diff --git a/tools/libxc/xc_cpufeature.h b/tools/libxc/xc_cpufeature.h index a110e6ef01..b1941f9956 100644 --- a/tools/libxc/xc_cpufeature.h +++ b/tools/libxc/xc_cpufeature.h @@ -87,6 +87,7 @@ #define X86_FEATURE_XSAVE 26 /* XSAVE/XRSTOR/XSETBV/XGETBV */ #define X86_FEATURE_AVX 28 /* Advanced Vector Extensions */ #define X86_FEATURE_F16C 29 /* Half-precision convert instruction */ +#define X86_FEATURE_RDRAND 30 /* Digital Random Number Generator */ #define X86_FEATURE_HYPERVISOR 31 /* Running under some hypervisor */ /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001 */ diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index aae6882653..287b1e7789 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -314,6 +314,7 @@ static void xc_cpuid_hvm_policy( bitmaskof(X86_FEATURE_POPCNT) | bitmaskof(X86_FEATURE_AES) | bitmaskof(X86_FEATURE_F16C) | + bitmaskof(X86_FEATURE_RDRAND) | ((xfeature_mask != 0) ? (bitmaskof(X86_FEATURE_AVX) | bitmaskof(X86_FEATURE_XSAVE)) : 0)); diff --git a/xen/include/asm-x86/cpufeature.h b/xen/include/asm-x86/cpufeature.h index 8ef7978e4d..f76a08f5be 100644 --- a/xen/include/asm-x86/cpufeature.h +++ b/xen/include/asm-x86/cpufeature.h @@ -106,6 +106,7 @@ #define X86_FEATURE_OSXSAVE (4*32+27) /* OSXSAVE */ #define X86_FEATURE_AVX (4*32+28) /* Advanced Vector Extensions */ #define X86_FEATURE_F16C (4*32+29) /* Half-precision convert instruction */ +#define X86_FEATURE_RDRAND (4*32+30) /* Digital Random Number Generator */ #define X86_FEATURE_HYPERVISOR (4*32+31) /* Running under some hypervisor */ /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */