diff mbox series

[RFC,27/27] target/arm: don't access TCG code when debugging with KVM

Message ID 20230104215835.24692-28-farosas@suse.de (mailing list archive)
State New, archived
Headers show
Series target/arm: Allow CONFIG_TCG=n builds | expand

Commit Message

Fabiano Rosas Jan. 4, 2023, 9:58 p.m. UTC
When TCG is disabled this part of the code should not be reachable, so
wrap it with an ifdef for now.

This allows us to start using CONFIG_TCG=n (--disable-tcg in the
configure line).

Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
As I understand it, only a small part of the ptw routines should be
necessary for use with KVM+gdbstub. But I don't know enough about arm
MMU yet to make that distinction.
---
 target/arm/ptw.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Richard Henderson Jan. 5, 2023, 5:19 a.m. UTC | #1
On 1/4/23 13:58, Fabiano Rosas wrote:
> When TCG is disabled this part of the code should not be reachable, so
> wrap it with an ifdef for now.
> 
> This allows us to start using CONFIG_TCG=n (--disable-tcg in the
> configure line).
> 
> Signed-off-by: Fabiano Rosas<farosas@suse.de>
> ---
> As I understand it, only a small part of the ptw routines should be
> necessary for use with KVM+gdbstub. But I don't know enough about arm
> MMU yet to make that distinction.
> ---
>   target/arm/ptw.c | 4 ++++
>   1 file changed, 4 insertions(+)

If we ever hit the assert (and I can't imagine why we would from kvm), we could adjust the 
preceding test vs in_debug, which would take kvm back to the setup we had prior to the 
rewrite.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
diff mbox series

Patch

diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index f812734bfb..a85eba101f 100644
--- a/target/arm/ptw.c
+++ b/target/arm/ptw.c
@@ -254,6 +254,7 @@  static bool S1_ptw_translate(CPUARMState *env, S1Translate *ptw,
         ptw->out_host = NULL;
         ptw->out_rw = false;
     } else {
+#ifdef CONFIG_TCG
         CPUTLBEntryFull *full;
         int flags;
 
@@ -270,6 +271,9 @@  static bool S1_ptw_translate(CPUARMState *env, S1Translate *ptw,
         ptw->out_rw = full->prot & PAGE_WRITE;
         pte_attrs = full->pte_attrs;
         pte_secure = full->attrs.secure;
+#else
+        g_assert_not_reached();
+#endif
     }
 
     if (regime_is_stage2(s2_mmu_idx)) {