lkml.org 
[lkml]   [2026]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
Subject[PATCH 10/14] KVM: arm64: Trap & emulate the ITS MAPC command
From
Parse the MAPC command and verify if we need to do any
updates to the shadow if the collection table is
configured with an indirect layout.

Signed-off-by: Sebastian Ene <sebastianene@google.com>
---
arch/arm64/kvm/hyp/nvhe/its_emulate.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/arch/arm64/kvm/hyp/nvhe/its_emulate.c b/arch/arm64/kvm/hyp/nvhe/its_emulate.c
index 7049d307a236..4782a9a24caa 100644
--- a/arch/arm64/kvm/hyp/nvhe/its_emulate.c
+++ b/arch/arm64/kvm/hyp/nvhe/its_emulate.c
@@ -198,6 +198,13 @@ static int process_its_vmapp(struct its_priv_state *its, struct its_cmd_block *c
return track_pfn(its, base_pfn, num_pages, remove);
}

+static int process_its_mapc(struct its_priv_state *its, struct its_cmd_block *cmd)
+{
+ u32 icid = cmd->raw_cmd[2] & GENMASK(15, 0);
+
+ return check_table_update(its, icid, GITS_BASER_TYPE_COLLECTION);
+}
+
static int parse_its_cmdq(struct its_priv_state *its, int offset, ssize_t len)
{
struct its_cmd_block *cmd = its->cmd_hyp_base + offset;
@@ -215,6 +222,10 @@ static int parse_its_cmdq(struct its_priv_state *its, int offset, ssize_t len)
case GITS_CMD_VMAPP:
ret = process_its_vmapp(its, cmd);
break;
+
+ case GITS_CMD_MAPC:
+ ret = process_its_mapc(its, cmd);
+ break;
}

cmd++;
--
2.53.0.473.g4a7958ca14-goog

\
 
 \ /
  Last update: 2026-03-10 14:43    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog