Hi Wei, On 27/02/15 11:41, weiyj_lk@xxxxxxx wrote: > From: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx> > > Add the missing unlock before return from function kvm_vgic_create() > in the error handling case. > > Signed-off-by: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx> > --- > virt/kvm/arm/vgic.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/virt/kvm/arm/vgic.c b/virt/kvm/arm/vgic.c > index 0cc6ab6..4b2c2e7 100644 > --- a/virt/kvm/arm/vgic.c > +++ b/virt/kvm/arm/vgic.c > @@ -1583,8 +1583,10 @@ int kvm_vgic_create(struct kvm *kvm, u32 type) > * emulation. So check this here again. KVM_CREATE_DEVICE does > * the proper checks already. > */ > - if (type == KVM_DEV_TYPE_ARM_VGIC_V2 && !vgic->can_emulate_gicv2) > - return -ENODEV; > + if (type == KVM_DEV_TYPE_ARM_VGIC_V2 && !vgic->can_emulate_gicv2) { > + ret = -ENODEV; > + goto out; > + } Ah, good catch. Embarrassing that that could slip through ... Acked-by: Andre Przywara <andre.przywara@xxxxxxx> Out of curiosity: did you see it hang or was this just by looking at the code? I thought that I tested this case ... Cheers, Andre. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html