@@ -36,7 +36,7 @@ extern const VMStateDescription vmstate_ccw_dev;
struct CCWDeviceClass {
DeviceClass parent_class;
void (*unplug)(HotplugHandler *, DeviceState *, Error **);
- void (*realize)(CcwDevice *, Error **);
+ bool (*realize)(CcwDevice *, Error **);
void (*refill_ids)(CcwDevice *);
};
@@ -31,9 +31,10 @@ static void ccw_device_refill_ids(CcwDevice *dev)
dev->subch_id.valid = true;
}
-static void ccw_device_realize(CcwDevice *dev, Error **errp)
+static bool ccw_device_realize(CcwDevice *dev, Error **errp)
{
ccw_device_refill_ids(dev);
+ return true;
}
static Property ccw_device_properties[] = {
@@ -137,8 +137,7 @@ static void s390_ccw_realize(S390CCWDevice *cdev, char *sysfsdev, Error **errp)
goto out_err;
}
- ck->realize(ccw_dev, &err);
- if (err) {
+ if (!ck->realize(ccw_dev, &err)) {
goto out_err;
}