There is no need to invalidate cache entry because we just wrote into a memory region. Writing itself guarantees that cache entry is valid.
But we still need to flush cache line to be sure that ITS sees a command written into a queue. Signed-off-by: Volodymyr Babchuk <volodymyr_babc...@epam.com> --- xen/arch/arm/gic-v3-its.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c index a9c971a55f..72cf318810 100644 --- a/xen/arch/arm/gic-v3-its.c +++ b/xen/arch/arm/gic-v3-its.c @@ -108,8 +108,7 @@ static int its_send_command(struct host_its *hw_its, const void *its_cmd) memcpy(hw_its->cmd_buf + writep, its_cmd, ITS_CMD_SIZE); if ( hw_its->flags & HOST_ITS_FLUSH_CMD_QUEUE ) - clean_and_invalidate_dcache_va_range(hw_its->cmd_buf + writep, - ITS_CMD_SIZE); + clean_dcache_va_range(hw_its->cmd_buf + writep, ITS_CMD_SIZE); else dsb(ishst); -- 2.42.0