The kvm argument is not passed to br_read_lock/unlock, this works for
the barrier implementation because the argument is not used. This ever
breaks if another lock implementation is used.

Signed-off-by: Julien Thierry <julien.thie...@arm.com>
---
 ioport.c | 4 ++--
 mmio.c   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/ioport.c b/ioport.c
index 505e822..a6dc65e 100644
--- a/ioport.c
+++ b/ioport.c
@@ -184,7 +184,7 @@ bool kvm__emulate_io(struct kvm_cpu *vcpu, u16 port, void 
*data, int direction,
        void *ptr = data;
        struct kvm *kvm = vcpu->kvm;
 
-       br_read_lock();
+       br_read_lock(kvm);
        entry = ioport_search(&ioport_tree, port);
        if (!entry)
                goto out;
@@ -201,7 +201,7 @@ bool kvm__emulate_io(struct kvm_cpu *vcpu, u16 port, void 
*data, int direction,
        }
 
 out:
-       br_read_unlock();
+       br_read_unlock(kvm);
 
        if (ret)
                return true;
diff --git a/mmio.c b/mmio.c
index c648bec..61e1d47 100644
--- a/mmio.c
+++ b/mmio.c
@@ -124,7 +124,7 @@ bool kvm__emulate_mmio(struct kvm_cpu *vcpu, u64 phys_addr, 
u8 *data, u32 len, u
 {
        struct mmio_mapping *mmio;
 
-       br_read_lock();
+       br_read_lock(vcpu->kvm);
        mmio = mmio_search(&mmio_tree, phys_addr, len);
 
        if (mmio)
@@ -135,7 +135,7 @@ bool kvm__emulate_mmio(struct kvm_cpu *vcpu, u64 phys_addr, 
u8 *data, u32 len, u
                                to_direction(is_write),
                                (unsigned long long)phys_addr, len);
        }
-       br_read_unlock();
+       br_read_unlock(vcpu->kvm);
 
        return true;
 }
-- 
1.9.1

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to