Re: [PATCH 5/6] KVM: x86: check kvm_pit outside kvm_vm_ioctl_reinject()

From: Paolo Bonzini
Date: Wed Jan 15 2020 - 12:53:46 EST


On 07/12/19 10:25, linmiaohe wrote:
> From: Miaohe Lin <linmiaohe@xxxxxxxxxx>
>
> check kvm_pit outside kvm_vm_ioctl_reinject() to keep codestyle consistent
> with other kvm_pit func and prepare for futher cleanups.
>
> Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>
> ---
> arch/x86/kvm/x86.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 2d4e3a2dfec6..00b5d4ace383 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -4662,9 +4662,6 @@ static int kvm_vm_ioctl_reinject(struct kvm *kvm,
> {
> struct kvm_pit *pit = kvm->arch.vpit;
>
> - if (!pit)
> - return -ENXIO;
> -
> /* pit->pit_state.lock was overloaded to prevent userspace from getting
> * an inconsistent state after running multiple KVM_REINJECT_CONTROL
> * ioctls in parallel. Use a separate lock if that ioctl isn't rare.
> @@ -5029,6 +5026,9 @@ long kvm_arch_vm_ioctl(struct file *filp,
> r = -EFAULT;
> if (copy_from_user(&control, argp, sizeof(control)))
> goto out;
> + r = -ENXIO;
> + if (!kvm->arch.vpit)
> + goto out;
> r = kvm_vm_ioctl_reinject(kvm, &control);
> break;
> }
>

Applied this one, I don't think the others are a useful improvement.

Paolo