From: Greg Kurz Date: Tue, 16 Feb 2021 12:02:47 +0000 (+0100) Subject: event_notifier: Set ->initialized earlier in event_notifier_init() X-Git-Tag: v6.0.0-rc0~82^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=82e2756897810b6e17e0c352101878b97b1e2688;p=thirdparty%2Fqemu.git event_notifier: Set ->initialized earlier in event_notifier_init() 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 Message-Id: <20210216120247.1293569-1-groug@kaod.org> Signed-off-by: Paolo Bonzini --- diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c index 5b2110e8619..8307013c5df 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: