From 81c5a3f8673403de315441991ff1566c4828f288 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alex=20Benn=C3=A9e?= Date: Thu, 4 Dec 2025 19:49:02 +0000 Subject: [PATCH] plugins/core: allow reading of registers during discon events MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We have protections that prevent callbacks that didn't declare themselves as wanting to access registers. However for discontinuities the system state is fully rectified so they should always be able to read the register values. a1688bc86ce (plugins: add hooks for new discontinuity related callbacks) Reviewed-by: Pierrick Bouvier Cc: Julian Ganz Reviewed-by: Julian Ganz Message-ID: <20251204194902.1340008-12-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- plugins/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/core.c b/plugins/core.c index 8f8bc7219c..b4b783008f 100644 --- a/plugins/core.c +++ b/plugins/core.c @@ -119,6 +119,7 @@ static void plugin_vcpu_cb__discon(CPUState *cpu, struct qemu_plugin_cb *cb, *next; uint64_t to = cpu->cc->get_pc(cpu); + qemu_plugin_set_cb_flags(cpu, QEMU_PLUGIN_CB_RW_REGS); if (cpu->cpu_index < plugin.num_vcpus) { /* iterate safely; plugins might uninstall themselves at any time */ QLIST_FOREACH_SAFE_RCU(cb, &plugin.cb_lists[ev], entry, next) { @@ -127,6 +128,7 @@ static void plugin_vcpu_cb__discon(CPUState *cpu, func(cb->ctx->id, cpu->cpu_index, type, from, to); } } + qemu_plugin_set_cb_flags(cpu, QEMU_PLUGIN_CB_NO_REGS); } /* -- 2.47.3