qemu/tcg-tci-fix-logic-error-when-registering-helpers-via.patch
yezengruan dec64939c6 Qemu update to version 6.2.0-59
- arm/virt: Fix vcpu hotplug idx_from_topo_ids
- Revert patches related to the vSVA
- sync some bugfix patches from upstream
- add generic vDPA device support

Signed-off-by: yezengruan <yezengruan@huawei.com>
(cherry picked from commit b99dbfd9847104300672fb4f559f1c2abba8aa33)
2022-12-06 09:18:10 +08:00

54 lines
1.9 KiB
Diff

From 32533b4b6ea73b69f654ae2d337b3262da36830a Mon Sep 17 00:00:00 2001
From: cmss_dx <dingxiang@cmss.chinamobile.com>
Date: Wed, 23 Nov 2022 06:23:16 +0000
Subject: [PATCH 07/29] tcg/tci: fix logic error when registering helpers via
FFI mainline inclusion from mainline-v7.2.0-rc1 commit
9dd1d56e570e5119fef2b28fda811d6891e597a8 category: bugfix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
--------------------------------
When registering helpers via FFI for TCI, the inner loop that iterates
parameters of the helper reuses (and thus pollutes) the same variable
used by the outer loop that iterates all helpers, thus made some helpers
unregistered.
Fix this logic error by using a dedicated temporary variable for the
inner loop.
Fixes: 22f1557 ("tcg: Build ffi data structures for helpers")
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Message-Id: <20221028072145.1593205-1-uwu@icenowy.me>
[rth: Move declaration of j to the for loop itself]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: cmss_dx <dingxiang@cmss.chinamobile.com>
---
tcg/tcg.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 934aa8510b..635555001b 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -632,9 +632,9 @@ static void tcg_context_init(unsigned max_cpus)
if (nargs != 0) {
ca->cif.arg_types = ca->args;
- for (i = 0; i < nargs; ++i) {
- int typecode = extract32(typemask, (i + 1) * 3, 3);
- ca->args[i] = typecode_to_ffi[typecode];
+ for (int j = 0; j < nargs; ++j) {
+ int typecode = extract32(typemask, (j + 1) * 3, 3);
+ ca->args[j] = typecode_to_ffi[typecode];
}
}
--
2.27.0