Re: [PATCH linux-next] KVM: x86: don't forget vcpu_put() in kvm_arch_vcpu_ioctl_set_sregs()

From: Lan Tianyu
Date: Wed Dec 20 2017 - 21:56:35 EST


On 2017å12æ21æ 08:30, Paolo Bonzini wrote:
> On 21/12/2017 01:24, Eric Biggers wrote:
>> From: Eric Biggers <ebiggers@xxxxxxxxxx>
>>
>> Due to a bad merge resolution between commit f29810335965 ("KVM/x86:
>> Check input paging mode when cs.l is set") and commit b4ef9d4e8cb8
>> ("KVM: Move vcpu_load to arch-specific kvm_arch_vcpu_ioctl_set_sregs"),
>> there is a case in kvm_arch_vcpu_ioctl_set_sregs() where vcpu_put() is
>> not called after vcpu_get(). Fix it.
>>
>> Reported-by: syzbot <syzkaller@xxxxxxxxxxxxxxxx>
>> Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>
>> ---
>> arch/x86/kvm/x86.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>> index ea3a98196753..f4e8b5089b28 100644
>> --- a/arch/x86/kvm/x86.c
>> +++ b/arch/x86/kvm/x86.c
>> @@ -7624,7 +7624,7 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
>> goto out;
>>
>> if (kvm_valid_sregs(vcpu, sregs))
>> - return -EINVAL;
>> + goto out;
>>
>> apic_base_msr.data = sregs->apic_base;
>> apic_base_msr.host_initiated = true;
>>
>
> Thanks very much Eric, that was fast! Adding Stephen and the linux-next
> mailing list to Cc. Adding the kvm/master tree has already paid off.
>
> Paolo
>

Hi Paolo:
Should we check input sregs before loading vcpu? If input sregs is
invalid, the operation is redundant.
--
Best regards
Tianyu Lan