All of lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH v2] KVM: use unified srcu interface function
@ 2022-12-29  1:52 flyingpeng(彭浩)
  0 siblings, 0 replies; only message in thread
From: flyingpeng(彭浩) @ 2022-12-29  1:52 UTC (permalink / raw)
  To: pbonzini; +Cc: kvm, linux-kernel

kvm->irq_routing is protected by kvm->irq_srcu.

Signed-off-by: Peng Hao <flyingpeng@tencent.com>
---
 virt/kvm/irqchip.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/virt/kvm/irqchip.c b/virt/kvm/irqchip.c
index 1e567d1f6d3d..d3ccfe922880 100644
--- a/virt/kvm/irqchip.c
+++ b/virt/kvm/irqchip.c
@@ -18,6 +18,10 @@
 #include <linux/export.h>
 #include <trace/events/kvm.h>

+#define kvm_get_irq_routing(kvm) \
+       srcu_dereference_check((kvm)->irq_routing, &(kvm)->irq_srcu,    \
+                               lockdep_is_held(&(kvm)->irq_lock))
+
 int kvm_irq_map_gsi(struct kvm *kvm,
                    struct kvm_kernel_irq_routing_entry *entries, int gsi)
 {
@@ -25,8 +29,7 @@ int kvm_irq_map_gsi(struct kvm *kvm,
        struct kvm_kernel_irq_routing_entry *e;
        int n = 0;

-       irq_rt = srcu_dereference_check(kvm->irq_routing, &kvm->irq_srcu,
-                                       lockdep_is_held(&kvm->irq_lock));
+       irq_rt = kvm_get_irq_routing(kvm);
        if (irq_rt && gsi < irq_rt->nr_rt_entries) {
                hlist_for_each_entry(e, &irq_rt->map[gsi], link) {
                        entries[n] = *e;
@@ -216,7 +219,7 @@ int kvm_set_irq_routing(struct kvm *kvm,
        }

        mutex_lock(&kvm->irq_lock);
-       old = rcu_dereference_protected(kvm->irq_routing, 1);
+       old = kvm_get_irq_routing(kvm);
        rcu_assign_pointer(kvm->irq_routing, new);
        kvm_irq_routing_update(kvm);
        kvm_arch_irq_routing_update(kvm);
--
2.27.0


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-12-29  2:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-29  1:52 [RESEND PATCH v2] KVM: use unified srcu interface function flyingpeng(彭浩)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.