diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2026-07-15 12:13:30 +0200 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2026-07-15 12:13:30 +0200 |
| commit | 15f8ba7806f03bf6c9512fc23a7f24f6d76585cb (patch) | |
| tree | c745b2efc5651897106345232729cbb0faf420ed /virt | |
| parent | 5b0d0464f640333c15e94f6f32f9bf246c3fc979 (diff) | |
| parent | 8d187d4b33c262c0f3e44842553521151d8629e8 (diff) | |
| download | linux-15f8ba7806f03bf6c9512fc23a7f24f6d76585cb.tar.gz linux-15f8ba7806f03bf6c9512fc23a7f24f6d76585cb.zip | |
Merge tag 'kvmarm-fixes-7.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
KVM/arm64 fixes for 7.2, take #2
- Move locking for kvm_io_bus_get_dev() into the caller, ensuring
race-free checks that the returned object is of the correct type
- Fix initialisation of the page-table walk level when relaxing
permissions
- Correctly update the XN attribute when relaxing permissions
- Fix the sign extension of loads from emulated MMIO regions
- Assorted collection of fixes for pKVM's FFA proxy, together with a
couple of FFA driver adjustments
Diffstat (limited to 'virt')
| -rw-r--r-- | virt/kvm/kvm_main.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index e44c20c04961..45e784462ec6 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -6069,25 +6069,19 @@ struct kvm_io_device *kvm_io_bus_get_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr) { struct kvm_io_bus *bus; - int dev_idx, srcu_idx; - struct kvm_io_device *iodev = NULL; + int dev_idx; - srcu_idx = srcu_read_lock(&kvm->srcu); + lockdep_assert_held(&kvm->srcu); bus = kvm_get_bus_srcu(kvm, bus_idx); if (!bus) - goto out_unlock; + return NULL; dev_idx = kvm_io_bus_get_first_dev(bus, addr, 1); if (dev_idx < 0) - goto out_unlock; - - iodev = bus->range[dev_idx].dev; - -out_unlock: - srcu_read_unlock(&kvm->srcu, srcu_idx); + return NULL; - return iodev; + return bus->range[dev_idx].dev; } EXPORT_SYMBOL_FOR_KVM_INTERNAL(kvm_io_bus_get_dev); |
