提交 b765f2c5 编写于 作者: M Marc Zyngier 提交者: Zheng Zengkai

irqchip/gic-v3-its: Add a cache invalidation right after vPE unmapping

virt inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I3ZSU3
CVE: NA

---------------------------

In order to be able to manipulate the VPT once a vPE has been
unmapped, perform the required CMO to invalidate the CPU view
of the VPT.
Signed-off-by: NMarc Zyngier <maz@kernel.org>
Signed-off-by: NShenming Lu <lushenming@huawei.com>
Link: https://lore.kernel.org/r/20210322060158.1584-2-lushenming@huawei.comReviewed-by: NKeqian Zhu <zhukeqian1@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 b999f22d
......@@ -4551,6 +4551,15 @@ static void its_vpe_irq_domain_deactivate(struct irq_domain *domain,
its_send_vmapp(its, vpe, false);
}
/*
* There may be a direct read to the VPT after unmapping the
* vPE, to guarantee the validity of this, we make the VPT
* memory coherent with the CPU caches here.
*/
if (find_4_1_its() && !atomic_read(&vpe->vmapp_count))
gic_flush_dcache_to_poc(page_address(vpe->vpt_page),
LPI_PENDBASE_SZ);
}
static const struct irq_domain_ops its_vpe_domain_ops = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册