From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: linmiaohe <linmiaohe@huawei.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, pbonzini@redhat.com, rkrcmar@redhat.com,
sean.j.christopherson@intel.com, wanpengli@tencent.com,
jmattson@google.com, joro@8bytes.org, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, hpa@zytor.com
Subject: Re: [PATCH RESEND] KVM: X86: eliminate obsolete KVM_GET_CPUID2 ioctl
Date: Mon, 24 Feb 2020 11:06:45 +0100 [thread overview]
Message-ID: <87o8topadm.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <1582516032-5161-1-git-send-email-linmiaohe@huawei.com>
linmiaohe <linmiaohe@huawei.com> writes:
> From: Miaohe Lin <linmiaohe@huawei.com>
>
> KVM_GET_CPUID2 ioctl is straight up broken
It may make sense to add the gory details from your previous patch where
you were trying to fix it.
> and not used anywhere. Remove it directly.
>
> Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---
> arch/x86/kvm/cpuid.c | 20 --------------------
> arch/x86/kvm/cpuid.h | 3 ---
> arch/x86/kvm/x86.c | 17 -----------------
> include/uapi/linux/kvm.h | 1 -
> tools/include/uapi/linux/kvm.h | 1 -
> 5 files changed, 42 deletions(-)
>
> diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
> index b1c469446b07..5e041a1282b8 100644
> --- a/arch/x86/kvm/cpuid.c
> +++ b/arch/x86/kvm/cpuid.c
> @@ -261,26 +261,6 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
> return r;
> }
>
> -int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
> - struct kvm_cpuid2 *cpuid,
> - struct kvm_cpuid_entry2 __user *entries)
> -{
> - int r;
> -
> - r = -E2BIG;
> - if (cpuid->nent < vcpu->arch.cpuid_nent)
> - goto out;
> - r = -EFAULT;
> - if (copy_to_user(entries, &vcpu->arch.cpuid_entries,
> - vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
> - goto out;
> - return 0;
> -
> -out:
> - cpuid->nent = vcpu->arch.cpuid_nent;
> - return r;
> -}
> -
> static __always_inline void cpuid_mask(u32 *word, int wordnum)
> {
> reverse_cpuid_check(wordnum);
> diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h
> index 7366c618aa04..76555de38e1b 100644
> --- a/arch/x86/kvm/cpuid.h
> +++ b/arch/x86/kvm/cpuid.h
> @@ -19,9 +19,6 @@ int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu,
> int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
> struct kvm_cpuid2 *cpuid,
> struct kvm_cpuid_entry2 __user *entries);
> -int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
> - struct kvm_cpuid2 *cpuid,
> - struct kvm_cpuid_entry2 __user *entries);
> bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
> u32 *ecx, u32 *edx, bool check_limit);
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index fbabb2f06273..ddcc51b89e2c 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -4286,23 +4286,6 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
> cpuid_arg->entries);
> break;
> }
> - case KVM_GET_CPUID2: {
> - struct kvm_cpuid2 __user *cpuid_arg = argp;
> - struct kvm_cpuid2 cpuid;
> -
> - r = -EFAULT;
> - if (copy_from_user(&cpuid, cpuid_arg, sizeof(cpuid)))
> - goto out;
> - r = kvm_vcpu_ioctl_get_cpuid2(vcpu, &cpuid,
> - cpuid_arg->entries);
> - if (r)
> - goto out;
> - r = -EFAULT;
> - if (copy_to_user(cpuid_arg, &cpuid, sizeof(cpuid)))
> - goto out;
> - r = 0;
> - break;
> - }
> case KVM_GET_MSRS: {
> int idx = srcu_read_lock(&vcpu->kvm->srcu);
> r = msr_io(vcpu, argp, do_get_msr, 1);
> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> index 4b95f9a31a2f..b37b8c1f300e 100644
> --- a/include/uapi/linux/kvm.h
> +++ b/include/uapi/linux/kvm.h
> @@ -1380,7 +1380,6 @@ struct kvm_s390_ucas_mapping {
> #define KVM_GET_LAPIC _IOR(KVMIO, 0x8e, struct kvm_lapic_state)
> #define KVM_SET_LAPIC _IOW(KVMIO, 0x8f, struct kvm_lapic_state)
> #define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2)
> -#define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2)
Even if we decide to be strong and remove KVM_GET_CPUID2 completely, I'd
suggest we leave a comment here saying that it was deprecated. Leaving
the branch in case (returning the same -EINVAL as passing an unsupported
IOCTL) may also make sense (with a 'deprecated' comment of course).
> /* Available with KVM_CAP_VAPIC */
> #define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl)
> /* Available with KVM_CAP_VAPIC */
> diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h
> index f0a16b4adbbd..431106dedd2c 100644
> --- a/tools/include/uapi/linux/kvm.h
> +++ b/tools/include/uapi/linux/kvm.h
> @@ -1379,7 +1379,6 @@ struct kvm_s390_ucas_mapping {
> #define KVM_GET_LAPIC _IOR(KVMIO, 0x8e, struct kvm_lapic_state)
> #define KVM_SET_LAPIC _IOW(KVMIO, 0x8f, struct kvm_lapic_state)
> #define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2)
> -#define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2)
> /* Available with KVM_CAP_VAPIC */
> #define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl)
> /* Available with KVM_CAP_VAPIC */
--
Vitaly
next prev parent reply other threads:[~2020-02-24 10:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-24 3:47 [PATCH RESEND] KVM: X86: eliminate obsolete KVM_GET_CPUID2 ioctl linmiaohe
2020-02-24 10:06 ` Vitaly Kuznetsov [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-02-25 1:38 linmiaohe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o8topadm.fsf@vitty.brq.redhat.com \
--to=vkuznets@redhat.com \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linmiaohe@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@redhat.com \
--cc=sean.j.christopherson@intel.com \
--cc=tglx@linutronix.de \
--cc=wanpengli@tencent.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.