Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
xen/events: avoid using info_for_irq() in xen_send_IPI_one()
xen_send_IPI_one() is being used by cpuhp_report_idle_dead() after it calls rcu_report_dead(), meaning that any RCU usage by xen_send_IPI_one() is a bad idea. Unfortunately xen_send_IPI_one() is using notify_remote_via_irq() today, which is using irq_get_chip_data() via info_for_irq(). And irq_get_chip_data() in turn is using a maple-tree lookup requiring RCU. Avoid this problem by caching the ipi event channels in another percpu variable, allowing the use notify_remote_via_evtchn() in xen_send_IPI_one(). Fixes: 721255b ("genirq: Use a maple tree for interrupt descriptor management") Reported-by: David Woodhouse <[email protected]> Signed-off-by: Juergen Gross <[email protected]> Tested-by: David Woodhouse <[email protected]> Acked-by: Stefano Stabellini <[email protected]> Signed-off-by: Juergen Gross <[email protected]>
- Loading branch information