diff mbox series

[2/2] cpu: ensure we don't call start_exclusive from cpu_exec

Message ID 20241023222026.1430014-3-pierrick.bouvier@linaro.org
State Superseded
Headers show
Series target/i386: fix hang when using slow path for ptw_setl | expand

Commit Message

Pierrick Bouvier Oct. 23, 2024, 10:20 p.m. UTC
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
 cpu-common.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Richard Henderson Oct. 25, 2024, 11:54 a.m. UTC | #1
On 10/23/24 23:20, Pierrick Bouvier wrote:
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
>   cpu-common.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/cpu-common.c b/cpu-common.c
> index 6b262233a3b..c979138fce9 100644
> --- a/cpu-common.c
> +++ b/cpu-common.c
> @@ -194,6 +194,9 @@ void start_exclusive(void)
>       CPUState *other_cpu;
>       int running_cpus;
>   
> +    /* Ensure we are not running, or start_exclusive will be blocked. */
> +    g_assert(!current_cpu || !current_cpu->running);
> +
>       if (current_cpu->exclusive_context_count) {
>           current_cpu->exclusive_context_count++;
>           return;

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

r~
Richard Henderson Oct. 25, 2024, 11:55 a.m. UTC | #2
On 10/23/24 23:20, Pierrick Bouvier wrote:
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
>   cpu-common.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/cpu-common.c b/cpu-common.c
> index 6b262233a3b..c979138fce9 100644
> --- a/cpu-common.c
> +++ b/cpu-common.c
> @@ -194,6 +194,9 @@ void start_exclusive(void)
>       CPUState *other_cpu;
>       int running_cpus;
>   
> +    /* Ensure we are not running, or start_exclusive will be blocked. */
> +    g_assert(!current_cpu || !current_cpu->running);
> +
>       if (current_cpu->exclusive_context_count) {
>           current_cpu->exclusive_context_count++;
>           return;

Actually, current_cpu had better be non-null from the very next line.


r~
diff mbox series

Patch

diff --git a/cpu-common.c b/cpu-common.c
index 6b262233a3b..c979138fce9 100644
--- a/cpu-common.c
+++ b/cpu-common.c
@@ -194,6 +194,9 @@  void start_exclusive(void)
     CPUState *other_cpu;
     int running_cpus;
 
+    /* Ensure we are not running, or start_exclusive will be blocked. */
+    g_assert(!current_cpu || !current_cpu->running);
+
     if (current_cpu->exclusive_context_count) {
         current_cpu->exclusive_context_count++;
         return;