Patchwork [v3,1/5] sysbus: make SysBusDeviceClass::init optional

login
register
mail settings
Submitter Peter Maydell
Date March 15, 2013, 2:34 p.m.
Message ID <1363358063-23973-2-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/228006/
State New
Headers show

Comments

Peter Maydell - March 15, 2013, 2:34 p.m.
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>
---
 hw/sysbus.c |    3 +++
 1 file changed, 3 insertions(+)

Patch

diff --git a/hw/sysbus.c b/hw/sysbus.c
index 702fc72..9a19468 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);
 }