[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 10/23] sclp/s390: rework sclp cpu hotplug device not
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PATCH 10/23] sclp/s390: rework sclp cpu hotplug device notification |
Date: |
Mon, 31 Aug 2015 13:13:50 +0200 |
From: David Hildenbrand <address@hidden>
Let's get rid of this strange local variable + irq logic and
work directly on the QOM. (hint: what happens if two such devices
are created?)
We could introduce proper QOM class + state for the cpu hotplug device,
however that would result in too much overhead for a simple
"trigger_signal" function.
Also remove one unnecessary class function initialization.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
hw/s390x/sclpcpu.c | 26 ++++++--------------------
1 file changed, 6 insertions(+), 20 deletions(-)
diff --git a/hw/s390x/sclpcpu.c b/hw/s390x/sclpcpu.c
index 2fe8b5a..615ac06 100644
--- a/hw/s390x/sclpcpu.c
+++ b/hw/s390x/sclpcpu.c
@@ -25,13 +25,16 @@ typedef struct ConfigMgtData {
uint8_t event_qualifier;
} QEMU_PACKED ConfigMgtData;
-static qemu_irq *irq_cpu_hotplug; /* Only used in this file */
-
#define EVENT_QUAL_CPU_CHANGE 1
void raise_irq_cpu_hotplug(void)
{
- qemu_irq_raise(*irq_cpu_hotplug);
+ Object *obj = object_resolve_path_type("", TYPE_SCLP_CPU_HOTPLUG, NULL);
+
+ SCLP_EVENT(obj)->event_pending = true;
+
+ /* Trigger SCLP read operation */
+ sclp_service_interrupt(0);
}
static unsigned int send_mask(void)
@@ -70,31 +73,14 @@ static int read_event_data(SCLPEvent *event,
EventBufferHeader *evt_buf_hdr,
return 1;
}
-static void trigger_signal(void *opaque, int n, int level)
-{
- SCLPEvent *event = opaque;
- event->event_pending = true;
-
- /* Trigger SCLP read operation */
- sclp_service_interrupt(0);
-}
-
-static int irq_cpu_hotplug_init(SCLPEvent *event)
-{
- irq_cpu_hotplug = qemu_allocate_irqs(trigger_signal, event, 1);
- return 0;
-}
-
static void cpu_class_init(ObjectClass *oc, void *data)
{
SCLPEventClass *k = SCLP_EVENT_CLASS(oc);
DeviceClass *dc = DEVICE_CLASS(oc);
- k->init = irq_cpu_hotplug_init;
k->get_send_mask = send_mask;
k->get_receive_mask = receive_mask;
k->read_event_data = read_event_data;
- k->write_event_data = NULL;
set_bit(DEVICE_CATEGORY_MISC, dc->categories);
}
--
2.5.1
- [Qemu-devel] [PATCH 17/23] s390: no need to manually parse for slots and maxmem, (continued)
- [Qemu-devel] [PATCH 17/23] s390: no need to manually parse for slots and maxmem, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 03/23] s390x/event-facility: fix receive mask check, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 16/23] s390/sclp: move sclp_service_interrupt into the sclp device, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 13/23] s390/sclp: temporarily fix unassignment/reassignment of memory subregions, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 11/23] s390/sclp: rework sclp event facility initialization + device realization, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 08/23] s390x/kvm: make setting of in-kernel irq routes more efficient, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 19/23] s390/sclp: ignore memory hotplug operations if it is disabled, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 07/23] pc-bios/s390-ccw: rebuild image, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 18/23] s390: disallow memory hotplug for the s390-virtio machine, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 14/23] s390/sclp: introduce a root sclp device, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 10/23] sclp/s390: rework sclp cpu hotplug device notification,
Cornelia Huck <=
- [Qemu-devel] [PATCH 21/23] s390: unify allocation of initial memory, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 06/23] pc-bios/s390-ccw: Device detection in higher subchannel sets, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 15/23] s390/sclp: move sclp_execute related functions into the SCLP class, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 09/23] s390x/gdb: support reading/writing of control registers, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 04/23] s390x/css: start with cleared cstat/dstat, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 20/23] s390: move memory calculation into the sclp device, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 22/23] s390/sclp: store the increment_size in the sclp device, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 12/23] s390/sclp: replace sclp event types with proper defines, Cornelia Huck, 2015/08/31
- [Qemu-devel] [PATCH 23/23] s390/sclp: simplify calculation of rnmax, Cornelia Huck, 2015/08/31