aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/book3s_hv.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kvm/book3s_hv.c')
-rw-r--r--arch/powerpc/kvm/book3s_hv.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index a7fe1783d245..a393c2b6b1b6 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -3490,9 +3490,15 @@ static int kvmppc_set_passthru_irq(struct kvm *kvm, int host_irq, int guest_gsi)
3490 irq_map = &pimap->mapped[i]; 3490 irq_map = &pimap->mapped[i];
3491 3491
3492 irq_map->v_hwirq = guest_gsi; 3492 irq_map->v_hwirq = guest_gsi;
3493 irq_map->r_hwirq = desc->irq_data.hwirq;
3494 irq_map->desc = desc; 3493 irq_map->desc = desc;
3495 3494
3495 /*
3496 * Order the above two stores before the next to serialize with
3497 * the KVM real mode handler.
3498 */
3499 smp_wmb();
3500 irq_map->r_hwirq = desc->irq_data.hwirq;
3501
3496 if (i == pimap->n_mapped) 3502 if (i == pimap->n_mapped)
3497 pimap->n_mapped++; 3503 pimap->n_mapped++;
3498 3504