[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V2 09/11] xen: Clear IRQD_IRQ_STARTED flag during shutdown PIRQs
Anchal Agarwal <anchalag@xxxxxxxxxx> writes: > shutdown_pirq is invoked during hibernation path and hence > PIRQs should be restarted during resume. > Before this commit'020db9d3c1dc0a' xen/events: Fix interrupt lost > during irq_disable and irq_enable startup_pirq was automatically > called during irq_enable however, after this commit pirq's did not > get explicitly started once resumed from hibernation. > > chip->irq_startup is called only if IRQD_IRQ_STARTED is unset during > irq_startup on resume. This flag gets cleared by free_irq->irq_shutdown > during suspend. free_irq() never gets explicitly called for ioapic-edge > and ioapic-level interrupts as respective drivers do nothing during > suspend/resume. So we shut them down explicitly in the first place in > syscore_suspend path to clear IRQ<>event channel mapping. shutdown_pirq > being called explicitly during suspend does not clear this flags, hence > .irq_enable is called in irq_startup during resume instead and pirq's > never start up. What? > +void irq_state_clr_started(struct irq_desc *desc) > { > irqd_clear(&desc->irq_data, IRQD_IRQ_STARTED); > } > +EXPORT_SYMBOL_GPL(irq_state_clr_started); This is core internal state and not supposed to be fiddled with by drivers. irq_chip has irq_suspend/resume/pm_shutdown callbacks for a reason. Thanks, tglx _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |