[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-stable] [Qemu-devel][PATCH v3] tcg: Fix occasional TCG broken prob
From: |
Yeongkyoon Lee |
Subject: |
[Qemu-stable] [Qemu-devel][PATCH v3] tcg: Fix occasional TCG broken problem when ldst optimization enabled |
Date: |
Fri, 22 Mar 2013 21:50:17 +0900 |
is_tcg_gen_code() checks the upper limit of TCG generated code range wrong, so
that TCG could get broken occasionally only when CONFIG_QEMU_LDST_OPTIMIZATION
enabled. The reason is code_gen_buffer_max_size does not cover the upper range
up to (TCG_MAX_OP_SIZE * OPC_BUF_SIZE), thus code_gen_buffer_max_size should be
modified to code_gen_buffer_size.
CC: address@hidden
Signed-off-by: Yeongkyoon Lee <address@hidden>
---
Here's the promised patch with Aurelien Jarno for TCG broken problem, which
is supposed to be applied to 1.3.x and 1.4.x releases as well as master.
Thanks to Aurelien Jarno and Stefan Weil.
v2: Fix source comment
v3: Inline address@hidden to commit message
translate-all.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/translate-all.c b/translate-all.c
index 1f3237e..72bea9b 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -1308,11 +1308,11 @@ static void tb_link_page(TranslationBlock *tb,
tb_page_addr_t phys_pc,
/* check whether the given addr is in TCG generated code buffer or not */
bool is_tcg_gen_code(uintptr_t tc_ptr)
{
- /* This can be called during code generation, code_gen_buffer_max_size
+ /* This can be called during code generation, code_gen_buffer_size
is used instead of code_gen_ptr for upper boundary checking */
return (tc_ptr >= (uintptr_t)tcg_ctx.code_gen_buffer &&
tc_ptr < (uintptr_t)(tcg_ctx.code_gen_buffer +
- tcg_ctx.code_gen_buffer_max_size));
+ tcg_ctx.code_gen_buffer_size));
}
#endif
--
1.7.9.5
- [Qemu-stable] [Qemu-devel][PATCH v3] tcg: Fix occasional TCG broken problem when ldst optimization enabled,
Yeongkyoon Lee <=