On 26/09/2019 15:57, Zenghui Yu wrote: > Hi Marc, > > I get one kernel panic with this patch on D05. Can you please try this (completely untested for now) on top of the whole series? I'll otherwise give it a go next week. Thanks, M. diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index bc55327406b7..9d24236d1257 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -3461,15 +3461,16 @@ static void its_vpe_send_cmd(struct its_vpe *vpe, static void its_vpe_send_inv(struct irq_data *d) { + struct its_vpe *vpe = irq_data_get_irq_chip_data(d); + if (gic_rdists->has_direct_lpi) { - /* - * Don't mess about. Generating the invalidation is easily - * done by using the parent irq_data, just like below. - */ - direct_lpi_inv(d->parent_data); - } else { - struct its_vpe *vpe = irq_data_get_irq_chip_data(d); + void __iomem *rdbase; + /* Target the redistributor this VPE is currently known on */ + rdbase = per_cpu_ptr(gic_rdists->rdist, vpe->col_idx)->rd_base; + gic_write_lpir(d->parent_data->hwirq, rdbase + GICR_INVLPIR); + wait_for_syncr(rdbase); + } else { its_vpe_send_cmd(vpe, its_send_inv); } } -- Jazz is not dead, it just smells funny... _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm