Patch "KVM: PPC: Book3S: Take the kvm->srcu lock in kvmppc_h_logical_ci_load/store()" has been added to the 4.1-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
KVM: PPC: Book3S: Take the kvm->srcu lock in kvmppc_h_logical_ci_load/store()
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
kvm-ppc-book3s-take-the-kvm-srcu-lock-in-kvmppc_h_logical_ci_load-store.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
3eb4ee68254235e4f47bc0410538fcdaede39589Mon Sep 17 00:00:00 2001
From: Thomas Huth <[email protected]>
Date: Fri, 18 Sep 2015 08:57:28 +0200
Subject: KVM: PPC: Book3S: Take the kvm->srcu lock in kvmppc_h_logical_ci_load/store()
From: Thomas Huth <[email protected]>
commit 3eb4ee68254235e4f47bc0410538fcdaede39589 upstream.
Access to the kvm->buses (like with the kvm_io_bus_read() and -write() functions) has to be protected via the kvm->srcu lock.
The kvmppc_h_logical_ci_load() and -store() functions are missing this lock so far, so let's add it there, too.
This fixes the problem that the kernel reports "suspicious RCU usage" when lock debugging is enabled.
--- arch/powerpc/kvm/book3s.c | 6 ++++++ 1 file changed, 6 insertions(+)
arch/powerpc/kvm/book3s.c +6 -0
@@ -826,12 +826,15 @@ int kvmppc_h_logical_ci_load(struct kvm_unsigned long size =kvmppc_get_gpr (vcpu,4 );unsigned long addr =kvmppc_get_gpr (vcpu,5 );u64 buf; +int srcu_idx;int ret;if (!is_power_of_2 (size) || (size >sizeof (buf)))return H_TOO_HARD ; + srcu_idx =srcu_read_lock (&vcpu->kvm->srcu); ret =kvm_io_bus_read (vcpu,KVM_MMIO_BUS , addr, size, &buf); +srcu_read_unlock (&vcpu->kvm->srcu, srcu_idx);if (ret !=0 )return H_TOO_HARD ;
@@ -866,6 +869,7 @@ int kvmppc_h_logical_ci_store(struct kvmunsigned long addr =kvmppc_get_gpr (vcpu,5 );unsigned long val =kvmppc_get_gpr (vcpu,6 );u64 buf; +int srcu_idx;int ret;switch (size) {
@@ -889,7 +893,9 @@ int kvmppc_h_logical_ci_store(struct kvmreturn H_TOO_HARD ; } + srcu_idx =srcu_read_lock (&vcpu->kvm->srcu); ret =kvm_io_bus_write (vcpu,KVM_MMIO_BUS , addr, size, &buf); +srcu_read_unlock (&vcpu->kvm->srcu, srcu_idx);if (ret !=0 )return H_TOO_HARD ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/kvm-ppc-book3s-take-the-kvm-srcu-lock-in-kvmppc_h_logical_ci_load-store.patch