From a30fb811cbe940020a498d2cdac9326cac38b4d9 Mon Sep 17 00:00:00 2001 From: David Hildenbrand Date: Tue, 24 Apr 2018 12:18:59 +0200 Subject: s390x: refactor reset/reipl handling Calling pause_all_vcpus()/resume_all_vcpus() from a VCPU thread might not be the best idea. As pause_all_vcpus() temporarily drops the qemu mutex, two parallel calls to pause_all_vcpus() can be active at a time, resulting in a deadlock. (either by two VCPUs or by the main thread and a VCPU) Let's handle it via the main loop instead, as suggested by Paolo. If we would have two parallel reset requests by two different VCPUs at the same time, the last one would win. We use the existing ipl device to handle it. The nice side effect is that we can get rid of reipl_requested. This change implies that all reset handling now goes via the common path, so "no-reboot" handling is now active for all kinds of reboots. Let's execute any CPU initialization code on the target CPU using run_on_cpu. Signed-off-by: David Hildenbrand Message-Id: <20180424101859.10239-1-david@redhat.com> Acked-by: Thomas Huth Signed-off-by: Cornelia Huck --- include/hw/s390x/s390-virtio-ccw.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include') diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h index ac896e3..ab88d49 100644 --- a/include/hw/s390x/s390-virtio-ccw.h +++ b/include/hw/s390x/s390-virtio-ccw.h @@ -53,6 +53,4 @@ bool cpu_model_allowed(void); */ bool css_migration_enabled(void); -void subsystem_reset(void); - #endif -- cgit v1.1