[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [XEN PATCH v3 05/11] xen: arm: add interfaces to save/restore the state of a PPI.
On Friday, November 15, 2019 3:11 PM, Stewart Hildebrand write: [...] >diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c >index 113655a789..75921724dd 100644 >--- a/xen/arch/arm/gic.c >+++ b/xen/arch/arm/gic.c [...] >@@ -78,6 +89,25 @@ void gic_save_state(struct vcpu *v) > isb(); > } > >+void gic_save_and_mask_hwppi(struct vcpu *v, const unsigned virq, >+ struct hwppi_state *s) >+{ >+ struct pending_irq *p = irq_to_pending(v, virq); >+ struct irq_desc *desc = p->desc; I intended to replace this with a call to vgic_get_hw_irq_desc, but I accidentally rolled the change into a later patch instead of this one. >+ >+ spin_lock(&desc->lock); >+ >+ ASSERT(virq >= 16 && virq < 32); >+ ASSERT(desc->irq >= 16 && desc->irq < 32); >+ ASSERT(!is_idle_vcpu(v)); >+ >+ s->inprogress = test_and_clear_bit(_IRQ_INPROGRESS, &desc->status); >+ >+ gic_hw_ops->save_and_mask_hwppi(desc, s); >+ >+ spin_unlock(&desc->lock); >+} >+ > void gic_restore_state(struct vcpu *v) > { > ASSERT(!local_irq_is_enabled()); >@@ -89,6 +119,30 @@ void gic_restore_state(struct vcpu *v) > isb(); > } > >+void gic_restore_hwppi(struct vcpu *v, >+ const unsigned virq, >+ const struct hwppi_state *s) >+{ >+ struct pending_irq *p = irq_to_pending(v, virq); >+ struct irq_desc *desc = irq_to_desc(s->irq); >+ >+ spin_lock(&desc->lock); >+ >+ ASSERT(virq >= 16 && virq < 32); >+ ASSERT(!is_idle_vcpu(v)); >+ >+ p->desc = desc; /* Migrate to new physical processor */ I intended to replace this with a call to vgic_connect_hw_irq. Same story as above. >+ >+ irq_set_virq(desc, virq); >+ >+ gic_hw_ops->restore_hwppi(desc, s); >+ >+ if ( s->inprogress ) >+ set_bit(_IRQ_INPROGRESS, &desc->status); >+ >+ spin_unlock(&desc->lock); >+} >+ > /* desc->irq needs to be disabled before calling this function */ > void gic_set_irq_type(struct irq_desc *desc, unsigned int type) > { _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |