[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RFC 8/9] isa: Clean up use of cannot_instantiate_wit
From: |
armbru |
Subject: |
[Qemu-devel] [PATCH RFC 8/9] isa: Clean up use of cannot_instantiate_with_device_add_yet |
Date: |
Thu, 10 Oct 2013 16:42:53 +0200 |
From: Markus Armbruster <address@hidden>
Drop it when there's no obvious reason why device_add could not work.
Else keep and document why.
* isa-fdc, port92, i8042, m48t59_isa, mc146818rtc, isa-pit, kvm-pit:
drop (the last two by dropping it from their abstract base
pit-common)
* pcspk: keep because of pointer property pit, and because realize
sets global pcspk_state
* vmmouse: keep because of pointer property ps2_mouse
* vmport: keep because realize sets global port_state
* pic-common, isa-i8259, kvm-i8259: move from abstract base pic-common
to its subtypes, keep in isa-i8259 because init sets global isa_pic
and slave_pic, keep in kvm-i8259 with /* FIXME explain why */
Perhaps I should split this patch.
Signed-off-by: Markus Armbruster <address@hidden>
---
hw/audio/pcspk.c | 3 ++-
hw/block/fdc.c | 1 -
hw/i386/kvm/i8259.c | 1 +
hw/i386/pc.c | 1 -
hw/input/pckbd.c | 1 -
hw/input/vmmouse.c | 3 ++-
hw/intc/i8259.c | 2 ++
hw/intc/i8259_common.c | 1 -
hw/misc/vmport.c | 3 ++-
hw/timer/i8254_common.c | 1 -
hw/timer/m48t59.c | 1 -
hw/timer/mc146818rtc.c | 1 -
12 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c
index 8e3e178..f980d66 100644
--- a/hw/audio/pcspk.c
+++ b/hw/audio/pcspk.c
@@ -192,8 +192,9 @@ static void pcspk_class_initfn(ObjectClass *klass, void
*data)
dc->realize = pcspk_realizefn;
set_bit(DEVICE_CATEGORY_SOUND, dc->categories);
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->props = pcspk_properties;
+ /* Reason: pointer property "pit", realize sets global pcspk_state */
+ dc->cannot_instantiate_with_device_add_yet = true;
}
static const TypeInfo pcspk_info = {
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index 86f4920..592b58f 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -2234,7 +2234,6 @@ static void isabus_fdc_class_init(ObjectClass *klass,
void *data)
dc->realize = isabus_fdc_realize;
dc->fw_name = "fdc";
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->reset = fdctrl_external_reset_isa;
dc->vmsd = &vmstate_isa_fdc;
dc->props = isa_fdc_properties;
diff --git a/hw/i386/kvm/i8259.c b/hw/i386/kvm/i8259.c
index 53e3ca8..6aa343a 100644
--- a/hw/i386/kvm/i8259.c
+++ b/hw/i386/kvm/i8259.c
@@ -144,6 +144,7 @@ static void kvm_i8259_class_init(ObjectClass *klass, void
*data)
dc->realize = kvm_pic_realize;
k->pre_save = kvm_pic_get;
k->post_load = kvm_pic_put;
+ dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
}
static const TypeInfo kvm_i8259_info = {
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index fe33843..bebda79 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -544,7 +544,6 @@ static void port92_class_initfn(ObjectClass *klass, void
*data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->realize = port92_realizefn;
dc->reset = port92_reset;
dc->vmsd = &vmstate_port92_isa;
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index dee31a6..655b8c5 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -522,7 +522,6 @@ static void i8042_class_initfn(ObjectClass *klass, void
*data)
DeviceClass *dc = DEVICE_CLASS(klass);
dc->realize = i8042_realizefn;
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->vmsd = &vmstate_kbd_isa;
}
diff --git a/hw/input/vmmouse.c b/hw/input/vmmouse.c
index 600e4a2..6a50533 100644
--- a/hw/input/vmmouse.c
+++ b/hw/input/vmmouse.c
@@ -282,10 +282,11 @@ static void vmmouse_class_initfn(ObjectClass *klass, void
*data)
DeviceClass *dc = DEVICE_CLASS(klass);
dc->realize = vmmouse_realizefn;
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->reset = vmmouse_reset;
dc->vmsd = &vmstate_vmmouse;
dc->props = vmmouse_properties;
+ /* Reason: pointer property "ps2_mouse" */
+ dc->cannot_instantiate_with_device_add_yet = true;
}
static const TypeInfo vmmouse_info = {
diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
index c6f248b..3321d10 100644
--- a/hw/intc/i8259.c
+++ b/hw/intc/i8259.c
@@ -504,6 +504,8 @@ static void i8259_class_init(ObjectClass *klass, void *data)
k->parent_realize = dc->realize;
dc->realize = pic_realize;
dc->reset = pic_reset;
+ /* Reason: init sets global isa_pic, slave_pic */
+ dc->cannot_instantiate_with_device_add_yet = true;
}
static const TypeInfo i8259_info = {
diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c
index 2acdbfe..0e35c14 100644
--- a/hw/intc/i8259_common.c
+++ b/hw/intc/i8259_common.c
@@ -135,7 +135,6 @@ static void pic_common_class_init(ObjectClass *klass, void
*data)
DeviceClass *dc = DEVICE_CLASS(klass);
dc->vmsd = &vmstate_pic_common;
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->props = pic_properties_common;
dc->realize = pic_common_realize;
}
diff --git a/hw/misc/vmport.c b/hw/misc/vmport.c
index 94ae6ae..cd5716a 100644
--- a/hw/misc/vmport.c
+++ b/hw/misc/vmport.c
@@ -162,7 +162,8 @@ static void vmport_class_initfn(ObjectClass *klass, void
*data)
DeviceClass *dc = DEVICE_CLASS(klass);
dc->realize = vmport_realizefn;
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
+ /* Reason: realize sets global port_state */
+ dc->cannot_instantiate_with_device_add_yet = true;
}
static const TypeInfo vmport_info = {
diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c
index dc2196c..2236369 100644
--- a/hw/timer/i8254_common.c
+++ b/hw/timer/i8254_common.c
@@ -282,7 +282,6 @@ static void pit_common_class_init(ObjectClass *klass, void
*data)
dc->realize = pit_common_realize;
dc->vmsd = &vmstate_pit_common;
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
}
static const TypeInfo pit_common_type = {
diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c
index f81cf48..c0dfb51 100644
--- a/hw/timer/m48t59.c
+++ b/hw/timer/m48t59.c
@@ -750,7 +750,6 @@ static void m48t59_isa_class_init(ObjectClass *klass, void
*data)
DeviceClass *dc = DEVICE_CLASS(klass);
dc->realize = m48t59_isa_realize;
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->reset = m48t59_reset_isa;
dc->props = m48t59_isa_properties;
}
diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c
index 2f58220..2faef13 100644
--- a/hw/timer/mc146818rtc.c
+++ b/hw/timer/mc146818rtc.c
@@ -906,7 +906,6 @@ static void rtc_class_initfn(ObjectClass *klass, void *data)
DeviceClass *dc = DEVICE_CLASS(klass);
dc->realize = rtc_realizefn;
- dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
dc->vmsd = &vmstate_rtc;
dc->props = mc146818rtc_properties;
}
--
1.8.1.4
- [Qemu-devel] [PATCH RFC 0/9] Clean up and fix no_user, armbru, 2013/10/10
- [Qemu-devel] [PATCH RFC 4/9] pci-host: Consistently set cannot_instantiate_with_device_add_yet, armbru, 2013/10/10
- [Qemu-devel] [PATCH RFC 2/9] sysbus: Set cannot_instantiate_with_device_add_yet, armbru, 2013/10/10
- [Qemu-devel] [PATCH RFC 9/9] qdev: Do not let the user try to device_add when it cannot work, armbru, 2013/10/10
- [Qemu-devel] [PATCH RFC 3/9] apic: Document why cannot_instantiate_with_device_add_yet, armbru, 2013/10/10
- [Qemu-devel] [PATCH RFC 1/9] qdev: Replace no_user by cannot_instantiate_with_device_add_yet, armbru, 2013/10/10
- [Qemu-devel] [PATCH RFC 8/9] isa: Clean up use of cannot_instantiate_with_device_add_yet,
armbru <=
- [Qemu-devel] Should the i8259 devices remain no-user? (was: [PATCH RFC 8/9] isa: Clean up use of cannot_instantiate_with_device_add_yet), Markus Armbruster, 2013/10/15
- Re: [Qemu-devel] Should the i8259 devices remain no-user?, Paolo Bonzini, 2013/10/15
- Re: [Qemu-devel] Should the i8259 devices remain no-user?, Markus Armbruster, 2013/10/16
- Re: [Qemu-devel] Should the i8259 devices remain no-user?, Paolo Bonzini, 2013/10/16
- Re: [Qemu-devel] Should the i8259 devices remain no-user?, Markus Armbruster, 2013/10/16
- Re: [Qemu-devel] Should the i8259 devices remain no-user?, BALATON Zoltan, 2013/10/16
- Re: [Qemu-devel] Should the i8259 devices remain no-user?, Paolo Bonzini, 2013/10/16
- Re: [Qemu-devel] fix clearing i8259 IRQ lines (Was: Should the i8259 devices remain no-user?), Matthew Ogilvie, 2013/10/26
- Re: [Qemu-devel] fix clearing i8259 IRQ lines (Was: Should the i8259 devices remain no-user?), BALATON Zoltan, 2013/10/29
[Qemu-devel] [PATCH RFC 5/9] ich9: Document why cannot_instantiate_with_device_add_yet, armbru, 2013/10/10