mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-28 16:52:18 +00:00
KVM: Drop hack that "manually" informs lockdep of kvm->lock vs. vcpu->mutex
Now that KVM takes vcpu->mutex inside kvm->lock when creating a vCPU, drop
the hack to manually inform lockdep of the kvm->lock => vcpu->mutex
ordering.
This effectively reverts commit 42a90008f8
("KVM: Ensure lockdep knows
about kvm->lock vs. vcpu->mutex ordering rule").
Cc: Oliver Upton <oliver.upton@linux.dev>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20241009150455.1057573-7-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
e53dc37f5a
commit
01528db67f
@ -4116,12 +4116,6 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, unsigned long id)
|
|||||||
|
|
||||||
mutex_lock(&kvm->lock);
|
mutex_lock(&kvm->lock);
|
||||||
|
|
||||||
#ifdef CONFIG_LOCKDEP
|
|
||||||
/* Ensure that lockdep knows vcpu->mutex is taken *inside* kvm->lock */
|
|
||||||
mutex_lock(&vcpu->mutex);
|
|
||||||
mutex_unlock(&vcpu->mutex);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (kvm_get_vcpu_by_id(kvm, id)) {
|
if (kvm_get_vcpu_by_id(kvm, id)) {
|
||||||
r = -EEXIST;
|
r = -EEXIST;
|
||||||
goto unlock_vcpu_destroy;
|
goto unlock_vcpu_destroy;
|
||||||
@ -4138,7 +4132,8 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, unsigned long id)
|
|||||||
* so that userspace can't invoke vCPU ioctl()s until the vCPU is fully
|
* so that userspace can't invoke vCPU ioctl()s until the vCPU is fully
|
||||||
* visible (per online_vcpus), e.g. so that KVM doesn't get tricked
|
* visible (per online_vcpus), e.g. so that KVM doesn't get tricked
|
||||||
* into a NULL-pointer dereference because KVM thinks the _current_
|
* into a NULL-pointer dereference because KVM thinks the _current_
|
||||||
* vCPU doesn't exist.
|
* vCPU doesn't exist. As a bonus, taking vcpu->mutex ensures lockdep
|
||||||
|
* knows it's taken *inside* kvm->lock.
|
||||||
*/
|
*/
|
||||||
mutex_lock(&vcpu->mutex);
|
mutex_lock(&vcpu->mutex);
|
||||||
kvm_get_kvm(kvm);
|
kvm_get_kvm(kvm);
|
||||||
|
Loading…
Reference in New Issue
Block a user