KVM: x86: Use macros for x86_emulate_ops to avoid future mistakes
[deliverable/linux.git] / virt / kvm / eventfd.c
index a9d3fc6c681c5ab01bec43975d50ef93408c88e1..486c604365d9e430ec2908689826d99302046e0f 100644 (file)
@@ -463,7 +463,7 @@ static int
 kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
 {
        int                       pio = args->flags & KVM_IOEVENTFD_FLAG_PIO;
-       struct kvm_io_bus        *bus = pio ? &kvm->pio_bus : &kvm->mmio_bus;
+       enum kvm_bus              bus_idx = pio ? KVM_PIO_BUS : KVM_MMIO_BUS;
        struct _ioeventfd        *p;
        struct eventfd_ctx       *eventfd;
        int                       ret;
@@ -508,7 +508,7 @@ kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
        else
                p->wildcard = true;
 
-       down_write(&kvm->slots_lock);
+       mutex_lock(&kvm->slots_lock);
 
        /* Verify that there isnt a match already */
        if (ioeventfd_check_collision(kvm, p)) {
@@ -518,18 +518,18 @@ kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
 
        kvm_iodevice_init(&p->dev, &ioeventfd_ops);
 
-       ret = __kvm_io_bus_register_dev(bus, &p->dev);
+       ret = kvm_io_bus_register_dev(kvm, bus_idx, &p->dev);
        if (ret < 0)
                goto unlock_fail;
 
        list_add_tail(&p->list, &kvm->ioeventfds);
 
-       up_write(&kvm->slots_lock);
+       mutex_unlock(&kvm->slots_lock);
 
        return 0;
 
 unlock_fail:
-       up_write(&kvm->slots_lock);
+       mutex_unlock(&kvm->slots_lock);
 
 fail:
        kfree(p);
@@ -542,7 +542,7 @@ static int
 kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
 {
        int                       pio = args->flags & KVM_IOEVENTFD_FLAG_PIO;
-       struct kvm_io_bus        *bus = pio ? &kvm->pio_bus : &kvm->mmio_bus;
+       enum kvm_bus              bus_idx = pio ? KVM_PIO_BUS : KVM_MMIO_BUS;
        struct _ioeventfd        *p, *tmp;
        struct eventfd_ctx       *eventfd;
        int                       ret = -ENOENT;
@@ -551,7 +551,7 @@ kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
        if (IS_ERR(eventfd))
                return PTR_ERR(eventfd);
 
-       down_write(&kvm->slots_lock);
+       mutex_lock(&kvm->slots_lock);
 
        list_for_each_entry_safe(p, tmp, &kvm->ioeventfds, list) {
                bool wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH);
@@ -565,13 +565,13 @@ kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
                if (!p->wildcard && p->datamatch != args->datamatch)
                        continue;
 
-               __kvm_io_bus_unregister_dev(bus, &p->dev);
+               kvm_io_bus_unregister_dev(kvm, bus_idx, &p->dev);
                ioeventfd_release(p);
                ret = 0;
                break;
        }
 
-       up_write(&kvm->slots_lock);
+       mutex_unlock(&kvm->slots_lock);
 
        eventfd_ctx_put(eventfd);
 
This page took 0.02509 seconds and 5 git commands to generate.