* [PATCH 1/2] plugins: missing QEMU_PLUGIN_API for time control
2024-06-12 19:51 [PATCH 0/2] Bug fixes for plugins Pierrick Bouvier
@ 2024-06-12 19:51 ` Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 2/2] plugins: fix inject_mem_cb rw masking Pierrick Bouvier
2024-06-12 21:32 ` [PATCH 0/2] Bug fixes for plugins Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: Pierrick Bouvier @ 2024-06-12 19:51 UTC (permalink / raw)
To: qemu-devel
Cc: Pierrick Bouvier, Alex Bennée, Paolo Bonzini,
Richard Henderson, Alexandre Iooss, Mahmoud Mandour
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
include/qemu/qemu-plugin.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/qemu/qemu-plugin.h b/include/qemu/qemu-plugin.h
index 80b1637cede..310ee10f301 100644
--- a/include/qemu/qemu-plugin.h
+++ b/include/qemu/qemu-plugin.h
@@ -670,6 +670,7 @@ void qemu_plugin_register_vcpu_mem_inline_per_vcpu(
*
* Returns an opaque handle or NULL if fails
*/
+QEMU_PLUGIN_API
const void *qemu_plugin_request_time_control(void);
/**
@@ -682,6 +683,7 @@ const void *qemu_plugin_request_time_control(void);
*
* Start time is 0.
*/
+QEMU_PLUGIN_API
void qemu_plugin_update_ns(const void *handle, int64_t time);
typedef void
--
2.39.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] plugins: fix inject_mem_cb rw masking
2024-06-12 19:51 [PATCH 0/2] Bug fixes for plugins Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 1/2] plugins: missing QEMU_PLUGIN_API for time control Pierrick Bouvier
@ 2024-06-12 19:51 ` Pierrick Bouvier
2024-06-12 21:32 ` [PATCH 0/2] Bug fixes for plugins Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: Pierrick Bouvier @ 2024-06-12 19:51 UTC (permalink / raw)
To: qemu-devel
Cc: Pierrick Bouvier, Alex Bennée, Paolo Bonzini,
Richard Henderson, Alexandre Iooss, Mahmoud Mandour
These are not booleans, but masks.
Issue found by Richard Henderson.
Fixes: f86fd4d8721 ("plugins: distinct types for callbacks")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
accel/tcg/plugin-gen.c | 4 ++--
plugins/core.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c
index cc1634e7a6b..b6bae32b997 100644
--- a/accel/tcg/plugin-gen.c
+++ b/accel/tcg/plugin-gen.c
@@ -240,13 +240,13 @@ static void inject_mem_cb(struct qemu_plugin_dyn_cb *cb,
{
switch (cb->type) {
case PLUGIN_CB_MEM_REGULAR:
- if (rw && cb->regular.rw) {
+ if (rw & cb->regular.rw) {
gen_mem_cb(&cb->regular, meminfo, addr);
}
break;
case PLUGIN_CB_INLINE_ADD_U64:
case PLUGIN_CB_INLINE_STORE_U64:
- if (rw && cb->inline_insn.rw) {
+ if (rw & cb->inline_insn.rw) {
inject_cb(cb);
}
break;
diff --git a/plugins/core.c b/plugins/core.c
index badede28cf9..9d737d82787 100644
--- a/plugins/core.c
+++ b/plugins/core.c
@@ -589,7 +589,7 @@ void qemu_plugin_vcpu_mem_cb(CPUState *cpu, uint64_t vaddr,
switch (cb->type) {
case PLUGIN_CB_MEM_REGULAR:
- if (rw && cb->regular.rw) {
+ if (rw & cb->regular.rw) {
cb->regular.f.vcpu_mem(cpu->cpu_index,
make_plugin_meminfo(oi, rw),
vaddr, cb->regular.userp);
@@ -597,7 +597,7 @@ void qemu_plugin_vcpu_mem_cb(CPUState *cpu, uint64_t vaddr,
break;
case PLUGIN_CB_INLINE_ADD_U64:
case PLUGIN_CB_INLINE_STORE_U64:
- if (rw && cb->inline_insn.rw) {
+ if (rw & cb->inline_insn.rw) {
exec_inline_op(cb->type, &cb->inline_insn, cpu->cpu_index);
}
break;
--
2.39.2
^ permalink raw reply related [flat|nested] 4+ messages in thread