From 6f6f6aaa26f23df0bf4d2040d5b362fa5b2bce31 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Fri, 3 Jul 2026 15:05:17 -0300 Subject: [PATCH] target/riscv/machine.c: do not migrate pmp state with kvm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PMP emulation isn't present in the KVM driver. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Message-ID: <20260703180538.3346781-6-daniel.barboza@oss.qualcomm.com> Signed-off-by: Alistair Francis --- target/riscv/machine.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/target/riscv/machine.c b/target/riscv/machine.c index ba96ceceef..ef0a8eae24 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -20,6 +20,7 @@ #include "cpu.h" #include "qemu/error-report.h" #include "system/kvm.h" +#include "system/tcg.h" #include "migration/cpu.h" #include "exec/icount.h" #include "target/riscv/debug.h" @@ -29,21 +30,25 @@ static bool pmp_needed(void *opaque) { RISCVCPU *cpu = opaque; - return cpu->cfg.pmp; + if (kvm_enabled()) { + return false; + } + + return tcg_enabled() && cpu->cfg.pmp; } static int pmp_post_load(void *opaque, int version_id) { +#ifdef CONFIG_TCG RISCVCPU *cpu = opaque; CPURISCVState *env = &cpu->env; - int i; uint8_t pmp_regions = riscv_cpu_cfg(env)->pmp_regions; - for (i = 0; i < pmp_regions; i++) { + for (int i = 0; i < pmp_regions; i++) { pmp_update_rule_addr(env, i); } pmp_update_rule_nums(env); - +#endif return 0; }