qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] event_notifier: Set ->initialized earlier in event_notifier_


From: Maxim Levitsky
Subject: Re: [PATCH] event_notifier: Set ->initialized earlier in event_notifier_init()
Date: Wed, 17 Feb 2021 16:59:22 +0200
User-agent: Evolution 3.36.5 (3.36.5-2.fc32)

On Tue, 2021-02-16 at 13:02 +0100, Greg Kurz wrote:
> Otherwise the call to event_notifier_set() is a nop, which causes
> the SLOF firmware on POWER to hang when booting from a virtio-scsi
> device:
> 
> virtio_scsi_dataplane_start()
>  virtio_scsi_vring_init()
>   virtio_bus_set_host_notifier() <- assign == true
>    event_notifier_init() <- active == 1
>     event_notifier_set() <- fails right away if !e->initialized
> 
> Fixes: e34e47eb28c0 ("event_notifier: handle initialization failure better")
> Cc: mlevitsk@redhat.com
> Signed-off-by: Greg Kurz <groug@kaod.org>
> ---
>  util/event_notifier-posix.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
> index 5b2110e86198..8307013c5df0 100644
> --- a/util/event_notifier-posix.c
> +++ b/util/event_notifier-posix.c
> @@ -66,10 +66,10 @@ int event_notifier_init(EventNotifier *e, int active)
>          e->rfd = fds[0];
>          e->wfd = fds[1];
>      }
> +    e->initialized = true;
>      if (active) {
>          event_notifier_set(e);
>      }
> -    e->initialized = true;
>      return 0;
>  
>  fail:
Sorry about that!

Best regards,
        Maxim levitsky




reply via email to

[Prev in Thread] Current Thread [Next in Thread]