Commit cb007648 authored by Mark McLoughlin's avatar Mark McLoughlin Committed by Avi Kivity

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: default avatarMark McLoughlin <markmc@redhat.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 60af2ecd
...@@ -1506,6 +1506,10 @@ static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, ...@@ -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)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment