On 25/04/2018 15:18, Cédric Le Goater wrote:
> Commit 9b0605f9837b ("cpus: tcg: unregister thread with RCU, fix
> exiting of loop on unplug") changed the exit condition of the loop in
> the vCPU thread function but forgot to remove the beginning 'while (1)'
> statement. The resulting code :
> 
>       while (1) {
>       ...
>       } while (!cpu->unplug || cpu_can_run(cpu));
> 
> is a sequence of two distinct two while() loops, the first not exiting
> in case of an unplug event.
> 
> Remove the first while (1) to fix CPU unplug.
> 
> Signed-off-by: Cédric Le Goater <c...@kaod.org>
> ---
>  cpus.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/cpus.c b/cpus.c
> index 38eba8bff334..e1d94038fd0d 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -1648,7 +1648,7 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
>      /* process any pending work */
>      cpu->exit_request = 1;
>  
> -    while (1) {
> +    do {
>          if (cpu_can_run(cpu)) {
>              int r;
>              qemu_mutex_unlock_iothread();
> 

Cc: qemu-sta...@nongnu.org

Queued, thanks.

Paolo

Reply via email to