[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 08/22] target/arm/kvm: Split kvm_arch_get/put_registers
From: |
Jean-Philippe Brucker |
Subject: |
[PATCH v2 08/22] target/arm/kvm: Split kvm_arch_get/put_registers |
Date: |
Fri, 19 Apr 2024 16:56:56 +0100 |
The confidential guest support in KVM limits the number of registers
that we can read and write. Split the get/put_registers function to
prepare for it.
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
target/arm/kvm.c | 30 ++++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index b00077c1a5..3504276822 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -2056,7 +2056,7 @@ static int kvm_arch_put_sve(CPUState *cs)
return 0;
}
-int kvm_arch_put_registers(CPUState *cs, int level)
+static int kvm_arm_put_core_regs(CPUState *cs, int level)
{
uint64_t val;
uint32_t fpr;
@@ -2159,6 +2159,19 @@ int kvm_arch_put_registers(CPUState *cs, int level)
return ret;
}
+ return 0;
+}
+
+int kvm_arch_put_registers(CPUState *cs, int level)
+{
+ int ret;
+ ARMCPU *cpu = ARM_CPU(cs);
+
+ ret = kvm_arm_put_core_regs(cs, level);
+ if (ret) {
+ return ret;
+ }
+
write_cpustate_to_list(cpu, true);
if (!write_list_to_kvmstate(cpu, level)) {
@@ -2240,7 +2253,7 @@ static int kvm_arch_get_sve(CPUState *cs)
return 0;
}
-int kvm_arch_get_registers(CPUState *cs)
+static int kvm_arm_get_core_regs(CPUState *cs)
{
uint64_t val;
unsigned int el;
@@ -2343,6 +2356,19 @@ int kvm_arch_get_registers(CPUState *cs)
}
vfp_set_fpcr(env, fpr);
+ return 0;
+}
+
+int kvm_arch_get_registers(CPUState *cs)
+{
+ int ret;
+ ARMCPU *cpu = ARM_CPU(cs);
+
+ ret = kvm_arm_get_core_regs(cs);
+ if (ret) {
+ return ret;
+ }
+
ret = kvm_get_vcpu_events(cpu);
if (ret) {
return ret;
--
2.44.0
- [PATCH v2 00/22] arm: Run CCA VMs with KVM, Jean-Philippe Brucker, 2024/04/19
- [PATCH v2 08/22] target/arm/kvm: Split kvm_arch_get/put_registers,
Jean-Philippe Brucker <=
- [PATCH v2 01/22] kvm: Merge kvm_check_extension() and kvm_vm_check_extension(), Jean-Philippe Brucker, 2024/04/19
- [PATCH v2 03/22] target/arm/kvm: Return immediately on error in kvm_arch_init(), Jean-Philippe Brucker, 2024/04/19
- [PATCH v2 07/22] hw/arm/virt: Reserve one bit of guest-physical address for RME, Jean-Philippe Brucker, 2024/04/19
- [PATCH v2 09/22] target/arm/kvm-rme: Initialize vCPU, Jean-Philippe Brucker, 2024/04/19
- [PATCH v2 14/22] target/arm/kvm-rme: Add Realm Personalization Value parameter, Jean-Philippe Brucker, 2024/04/19
- [PATCH v2 17/22] target/arm/cpu: Set number of PMU counters in KVM, Jean-Philippe Brucker, 2024/04/19