aboutsummaryrefslogtreecommitdiff
path: root/hw/sysbus.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2013-03-15 14:34:19 +0000
committerAnthony Liguori <aliguori@us.ibm.com>2013-04-01 09:08:33 -0500
commit4ce5dae88ecf2bafa0cd663de7e923728b1b3672 (patch)
tree6621d7b14ed858057614f7083ce4760f2b28fa9e /hw/sysbus.c
parent5357406415571b3f03d05b60a143afdea2b9b1b9 (diff)
sysbus: make SysBusDeviceClass::init optional
Make the SysBusDeviceClass::init optional, for devices which genuinely don't need to do anything here. In particular, simple devices which can do all their initialization in their instance_init method don't need either a DeviceClass::realize or SysBusDeviceClass::init method. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Message-id: 1363358063-23973-2-git-send-email-peter.maydell@linaro.org Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/sysbus.c')
-rw-r--r--hw/sysbus.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/sysbus.c b/hw/sysbus.c
index 702fc728f4..9a19468347 100644
--- a/hw/sysbus.c
+++ b/hw/sysbus.c
@@ -137,6 +137,9 @@ static int sysbus_device_init(DeviceState *dev)
SysBusDevice *sd = SYS_BUS_DEVICE(dev);
SysBusDeviceClass *sbc = SYS_BUS_DEVICE_GET_CLASS(sd);
+ if (!sbc->init) {
+ return 0;
+ }
return sbc->init(sd);
}