KVM: fix cpuid E2BIG handling for extended request types

If we run out of cpuid entries for extended request types
we should return -E2BIG, just like we do for the standard
request types.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
Mark McLoughlin 2009-05-12 12:36:44 +01:00 committed by Avi Kivity
parent 60af2ecdc5
commit cb007648de
1 changed files with 4 additions and 0 deletions

View File

@ -1506,6 +1506,10 @@ static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
for (func = 0x80000001; func <= limit && nent < cpuid->nent; ++func) for (func = 0x80000001; func <= limit && nent < cpuid->nent; ++func)
do_cpuid_ent(&cpuid_entries[nent], func, 0, do_cpuid_ent(&cpuid_entries[nent], func, 0,
&nent, cpuid->nent); &nent, cpuid->nent);
r = -E2BIG;
if (nent >= cpuid->nent)
goto out_free;
r = -EFAULT; r = -EFAULT;
if (copy_to_user(entries, cpuid_entries, if (copy_to_user(entries, cpuid_entries,
nent * sizeof(struct kvm_cpuid_entry2))) nent * sizeof(struct kvm_cpuid_entry2)))