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