summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2009-06-29 18:05:10 +0200
committerAvi Kivity <avi@redhat.com>2009-09-10 08:33:06 +0300
commit27c4ba60171d9ce29d3645619837760d758ed288 (patch)
treeb32696a5c783c90009200b80783cb667b6e15005 /virt
parent22fc02943a630417cb71734cd0b2e6f8dc4210b6 (diff)
downloadlinux-27c4ba60171d9ce29d3645619837760d758ed288.tar.gz
linux-27c4ba60171d9ce29d3645619837760d758ed288.tar.bz2
linux-27c4ba60171d9ce29d3645619837760d758ed288.zip
KVM: fix lock imbalance
There is a missing unlock on one fail path in ioapic_mmio_write, fix that. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/ioapic.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c
index ddf6aa998b18..8a9c6cc382f8 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;
}