diff options
author | Jan Beulich <jbeulich@suse.com> | 2013-10-04 12:32:25 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-10-04 12:32:25 +0200 |
commit | 11b85dbd0ab068bad3beadda3aee2298205a3c01 (patch) | |
tree | 987f35bfb9ea63de8e3e955a22b11afc0db310af /xen/arch/x86/hvm/vmx | |
parent | c6f92aed0e209df823d2cb5780dbb1ea12fc6d4a (diff) | |
download | xen-11b85dbd0ab068bad3beadda3aee2298205a3c01.tar.gz xen-11b85dbd0ab068bad3beadda3aee2298205a3c01.tar.bz2 xen-11b85dbd0ab068bad3beadda3aee2298205a3c01.zip |
x86: make hvm_cpuid() tolerate NULL pointers
Now that other HVM code started making more extensive use of
hvm_cpuid(), let's not force every caller to declare dummy variables
for output not cared about.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Acked-by: Jun Nakajima <jun.nakajima@intel.com>
Diffstat (limited to 'xen/arch/x86/hvm/vmx')
-rw-r--r-- | xen/arch/x86/hvm/vmx/vvmx.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index eb0218e0db..2b2de77441 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -1815,7 +1815,7 @@ int nvmx_handle_invvpid(struct cpu_user_regs *regs) int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content) { struct vcpu *v = current; - unsigned int eax, ebx, ecx, edx, dummy; + unsigned int eax, ebx, ecx, edx; u64 data = 0, host_data = 0; int r = 1; @@ -1823,7 +1823,7 @@ int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content) return 0; /* VMX capablity MSRs are available only when guest supports VMX. */ - hvm_cpuid(0x1, &dummy, &dummy, &ecx, &edx); + hvm_cpuid(0x1, NULL, NULL, &ecx, &edx); if ( !(ecx & cpufeat_mask(X86_FEATURE_VMXE)) ) return 0; @@ -1975,18 +1975,18 @@ int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content) if ( ecx & cpufeat_mask(X86_FEATURE_XSAVE) ) data |= X86_CR4_OSXSAVE; - hvm_cpuid(0x0, &eax, &dummy, &dummy, &dummy); + hvm_cpuid(0x0, &eax, NULL, NULL, NULL); switch ( eax ) { default: - hvm_cpuid(0xa, &eax, &dummy, &dummy, &dummy); + hvm_cpuid(0xa, &eax, NULL, NULL, NULL); /* Check whether guest has the perf monitor feature. */ if ( (eax & 0xff) && (eax & 0xff00) ) data |= X86_CR4_PCE; /* fall through */ case 0x7 ... 0x9: ecx = 0; - hvm_cpuid(0x7, &dummy, &ebx, &ecx, &dummy); + hvm_cpuid(0x7, NULL, &ebx, &ecx, NULL); if ( ebx & cpufeat_mask(X86_FEATURE_FSGSBASE) ) data |= X86_CR4_FSGSBASE; if ( ebx & cpufeat_mask(X86_FEATURE_SMEP) ) |