brlock: Always pass argument to br_read_lock/unlock
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.
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
diff --git a/ioport.c b/ioport.c
index 505e822..a6dc65e 100644
--- a/ioport.c
+++ b/ioport.c
@@ -184,7 +184,7 @@
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 @@
}
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 @@
{
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 @@
to_direction(is_write),
(unsigned long long)phys_addr, len);
}
- br_read_unlock();
+ br_read_unlock(vcpu->kvm);
return true;
}