diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c index ddf6aa998b1835aacb2482db2099fd0f22fa2309..8a9c6cc382f874030e2407a06f7fe60f6726c088 100644 --- a/virt/kvm/ioapic.c +++ b/virt/kvm/ioapic.c @@ -292,7 +292,7 @@ static int ioapic_mmio_write(struct kvm_io_device *this, gpa_t addr, int len, data = *(u32 *) val; else { printk(KERN_WARNING "ioapic: Unsupported size %d\n", len); - return 0; + goto unlock; } addr &= 0xff; @@ -313,6 +313,7 @@ static int ioapic_mmio_write(struct kvm_io_device *this, gpa_t addr, int len, default: break; } +unlock: mutex_unlock(&ioapic->kvm->irq_lock); return 0; }