diff options
author | Greg Kurz | 2021-02-16 13:02:47 +0100 |
---|---|---|
committer | Paolo Bonzini | 2021-02-16 17:15:39 +0100 |
commit | 82e2756897810b6e17e0c352101878b97b1e2688 (patch) | |
tree | 4aa70d58a480f305030e31437d9493bd300e72d0 /util/event_notifier-posix.c | |
parent | hvf: Fetch cr4 before evaluating CPUID(1) (diff) | |
download | qemu-82e2756897810b6e17e0c352101878b97b1e2688.tar.gz qemu-82e2756897810b6e17e0c352101878b97b1e2688.tar.xz qemu-82e2756897810b6e17e0c352101878b97b1e2688.zip |
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 <groug@kaod.org>
Message-Id: <20210216120247.1293569-1-groug@kaod.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'util/event_notifier-posix.c')
-rw-r--r-- | util/event_notifier-posix.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c index 5b2110e861..8307013c5d 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: |