diff mbox series

[RFC,RESEND,20/42] accel/split: Implement cpu_common_realize()

Message ID 20250620172751.94231-21-philmd@linaro.org
State New
Headers show
Series accel/split/arm: Run EL2 using TCG and EL1/EL0 in hardware with HVF | expand

Commit Message

Philippe Mathieu-Daudé June 20, 2025, 5:27 p.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/split/split-accel-ops.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Richard Henderson June 22, 2025, 2:56 a.m. UTC | #1
On 6/20/25 10:27, Philippe Mathieu-Daudé wrote:
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/split/split-accel-ops.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/accel/split/split-accel-ops.c b/accel/split/split-accel-ops.c
> index 63b6217f3fa..3278e01f18a 100644
> --- a/accel/split/split-accel-ops.c
> +++ b/accel/split/split-accel-ops.c
> @@ -15,6 +15,7 @@
>   #include "system/cpus.h"
>   #include "split-accel.h"
>   
> +#include "accel/accel-internal.h"
>   #include "accel/tcg/tcg-accel-ops-mttcg.h"
>   
>   static void *split_cpu_thread_routine(void *arg)
> @@ -112,7 +113,14 @@ static void split_ops_init(AccelClass *ac)
>   
>   static bool split_cpu_common_realize(CPUState *cpu, Error **errp)
>   {
> -    g_assert_not_reached();
> +    AccelState *as = current_accel();
> +    SplitAccelState *sas = SPLIT_ACCEL(as);
> +    bool success = false;
> +
> +    success |= accel_cpu_realize(sas->sw, cpu, errp);
> +    success |= accel_cpu_realize(sas->hw, cpu, errp);

&&

r~
diff mbox series

Patch

diff --git a/accel/split/split-accel-ops.c b/accel/split/split-accel-ops.c
index 63b6217f3fa..3278e01f18a 100644
--- a/accel/split/split-accel-ops.c
+++ b/accel/split/split-accel-ops.c
@@ -15,6 +15,7 @@ 
 #include "system/cpus.h"
 #include "split-accel.h"
 
+#include "accel/accel-internal.h"
 #include "accel/tcg/tcg-accel-ops-mttcg.h"
 
 static void *split_cpu_thread_routine(void *arg)
@@ -112,7 +113,14 @@  static void split_ops_init(AccelClass *ac)
 
 static bool split_cpu_common_realize(CPUState *cpu, Error **errp)
 {
-    g_assert_not_reached();
+    AccelState *as = current_accel();
+    SplitAccelState *sas = SPLIT_ACCEL(as);
+    bool success = false;
+
+    success |= accel_cpu_realize(sas->sw, cpu, errp);
+    success |= accel_cpu_realize(sas->hw, cpu, errp);
+
+    return success;
 }
 
 static void split_cpu_common_unrealize(CPUState *cpu)