aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCornelia Huck <cohuck@redhat.com>2017-10-04 17:34:23 +0200
committerCornelia Huck <cohuck@redhat.com>2017-10-06 10:53:02 +0200
commit7aa4d85d2962a072931657bee964113727ebf0c8 (patch)
treeb0bcc290ce81accbfe99c971e339f1efb14f350a
parente6cb60bf158fe7ea4505d760fdbb7abe4dbf4362 (diff)
downloadqemu-7aa4d85d2962a072931657bee964113727ebf0c8.zip
qemu-7aa4d85d2962a072931657bee964113727ebf0c8.tar.gz
qemu-7aa4d85d2962a072931657bee964113727ebf0c8.tar.bz2
s390x/sclp: mark sclp-cpu-hotplug as non-usercreatable
A TYPE_SCLP_CPU_HOTPLUG device for handling cpu hotplug events is already created by the sclp event facility. Adding a second TYPE_SCLP_CPU_HOTPLUG device via -device sclp-cpu-hotplug creates an ambiguity in raise_irq_cpu_hotplug(), leading to a crash once a cpu is hotplugged. To fix this, disallow creating a sclp-cpu-hotplug device manually. Reviewed-by: Thomas Huth <thuth@redhat.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
-rw-r--r--hw/s390x/sclpcpu.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/s390x/sclpcpu.c b/hw/s390x/sclpcpu.c
index 023d059..3ee890b 100644
--- a/hw/s390x/sclpcpu.c
+++ b/hw/s390x/sclpcpu.c
@@ -82,6 +82,12 @@ static void cpu_class_init(ObjectClass *oc, void *data)
k->get_receive_mask = receive_mask;
k->read_event_data = read_event_data;
set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+ /*
+ * Reason: raise_irq_cpu_hotplug() depends on an unique
+ * TYPE_SCLP_CPU_HOTPLUG device, which is already created
+ * by the sclp event facility
+ */
+ dc->user_creatable = false;
}
static const TypeInfo sclp_cpu_info = {