Skip to contentSkip to conversation

KVM: x86: Assign correct value to array.maxnent

PATCH Superseded Xiaoyao Li 1 participant 2 messages Jun 4, 2020

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Xiaoyao Li

author
#0 lore raw

PATCH 1/1 KVM: x86: Assign correct value to array.maxnent

Delay the assignment of array.maxnent to use correct value for the case cpuid->nent > KVM_MAX_CPUID_ENTRIES.

Fixes e53c95e8d41e ("KVM: x86: Encapsulate CPUID entries and metadata in struct")
---
 arch/x86/kvm/cpuid.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
arch/x86/kvm/cpuid.c +2 -1
index 253b8e875ccd..befff01d100c 100644
@@ -870,7 +870,6 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid,
 
 	struct kvm_cpuid_array array = {
 		.nent = 0,
-		.maxnent = cpuid->nent,
 	};
 	int r, i;
 
@@ -887,6 +886,8 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid,
 	if (!array.entries)
 		return -ENOMEM;
 
+	array.maxnent = cpuid->nent;
+
 	for (i = 0; i < ARRAY_SIZE(funcs); i++) {
 		r = get_cpuid_func(&array, funcs[i], type);
 		if (r)
Signature · 1 line
2.18.2
author
#1 lore raw
Quoted 22 lines · Xiaoyao Li

Delay the assignment of array.maxnent to use correct value for the case cpuid->nent > KVM_MAX_CPUID_ENTRIES.

Fixes e53c95e8d41e ("KVM: x86: Encapsulate CPUID entries and metadata in struct")
---
  arch/x86/kvm/cpuid.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
arch/x86/kvm/cpuid.c +0 -1
index 253b8e875ccd..befff01d100c 100644
@@ -870,7 +870,6 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid,
 
  	struct kvm_cpuid_array array = {
  		.nent = 0,
-		.maxnent = cpuid->nent,
  	};
  	int r, i;
 

arch/x86/kvm/cpuid.c int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid, · line 889

Quoted 4 lines
arch/x86/kvm/cpuid.c +1 -0
@@ -887,6 +886,8 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid,
  	if (!array.entries)
  		return -ENOMEM;
 
+	array.maxnent = cpuid->nent;

Miss the fact that maxnent is const, V2 is coming.

Quoted 5 lines
arch/x86/kvm/cpuid.c +1 -0
+
  	for (i = 0; i < ARRAY_SIZE(funcs); i++) {
  		r = get_cpuid_func(&array, funcs[i], type);
  		if (r)