[PATCH] accel/tcg/plugin: Fix op_rw

Richard Henderson posted 1 patch 1 year, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20221121203906.64404-1-richard.henderson@linaro.org
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>
accel/tcg/plugin-gen.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
[PATCH] accel/tcg/plugin: Fix op_rw
Posted by Richard Henderson 1 year, 5 months ago
The value of op->args[2] is enum qemu_plugin_mem_rw, which
is already 1-based.  Adding 1 produces incorrect results
for QEMU_PLUGIN_MEM_W and QEMU_PLUGIN_MEM_RW.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 accel/tcg/plugin-gen.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c
index c7d6514840..cd9cee1f5d 100644
--- a/accel/tcg/plugin-gen.c
+++ b/accel/tcg/plugin-gen.c
@@ -495,10 +495,7 @@ static bool op_ok(const TCGOp *op, const struct qemu_plugin_dyn_cb *cb)
 
 static bool op_rw(const TCGOp *op, const struct qemu_plugin_dyn_cb *cb)
 {
-    int w;
-
-    w = op->args[2];
-    return !!(cb->rw & (w + 1));
+    return cb->rw & op->args[2];
 }
 
 static void inject_cb_type(const GArray *cbs, TCGOp *begin_op,
-- 
2.34.1
Re: [PATCH] accel/tcg/plugin: Fix op_rw
Posted by Alex Bennée 1 year, 4 months ago
Richard Henderson <richard.henderson@linaro.org> writes:

> The value of op->args[2] is enum qemu_plugin_mem_rw, which
> is already 1-based.  Adding 1 produces incorrect results
> for QEMU_PLUGIN_MEM_W and QEMU_PLUGIN_MEM_RW.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
Re: [PATCH] accel/tcg/plugin: Fix op_rw
Posted by Richard Henderson 1 year, 4 months ago
Ping.

r~

On 11/21/22 12:39, Richard Henderson wrote:
> The value of op->args[2] is enum qemu_plugin_mem_rw, which
> is already 1-based.  Adding 1 produces incorrect results
> for QEMU_PLUGIN_MEM_W and QEMU_PLUGIN_MEM_RW.
> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   accel/tcg/plugin-gen.c | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c
> index c7d6514840..cd9cee1f5d 100644
> --- a/accel/tcg/plugin-gen.c
> +++ b/accel/tcg/plugin-gen.c
> @@ -495,10 +495,7 @@ static bool op_ok(const TCGOp *op, const struct qemu_plugin_dyn_cb *cb)
>   
>   static bool op_rw(const TCGOp *op, const struct qemu_plugin_dyn_cb *cb)
>   {
> -    int w;
> -
> -    w = op->args[2];
> -    return !!(cb->rw & (w + 1));
> +    return cb->rw & op->args[2];
>   }
>   
>   static void inject_cb_type(const GArray *cbs, TCGOp *begin_op,