Message ID | 1492626091-30531-2-git-send-email-tgnyang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 20 Apr 2017 02:21:30 +0800 Zihan Yang <tgnyang@gmail.com> wrote: > Note that only the virtio_ccw_exit, which is the exit function > of VirtIOCCWDeviceClass, is modified to return void in this patch. > 'virtio_ccw_busdev_exit' belongs to DeviceClass so it remains > unchanged for the moment to give a split-out patch, because > modifying it would involve some other folders like hw/audio. Change the last sentence to "DeviceClass::exit will be converted to void in another patch" or so. Also, the same leading whitespace as in your previous patch. > > Signed-off-by: Zihan Yang <tgnyang@gmail.com> > --- > hw/s390x/event-facility.c | 6 +----- > hw/s390x/virtio-ccw.c | 6 +++--- > hw/s390x/virtio-ccw.h | 2 +- > 3 files changed, 5 insertions(+), 9 deletions(-) > > diff --git a/hw/s390x/event-facility.c b/hw/s390x/event-facility.c > index 34b2faf..f7c509c 100644 > --- a/hw/s390x/event-facility.c > +++ b/hw/s390x/event-facility.c > @@ -413,11 +413,7 @@ static void event_unrealize(DeviceState *qdev, Error **errp) > SCLPEvent *event = SCLP_EVENT(qdev); > SCLPEventClass *child = SCLP_EVENT_GET_CLASS(event); > if (child->exit) { > - int rc = child->exit(event); > - if (rc < 0) { > - error_setg(errp, "SCLP event exit failed."); > - return; > - } > + child->exit(event); > } > } Ah, here's the hunk that should have been in the previous patch. > > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c > index 00b3bde..0dbd3ee 100644 > --- a/hw/s390x/virtio-ccw.c > +++ b/hw/s390x/virtio-ccw.c > @@ -722,7 +722,7 @@ static void virtio_ccw_device_realize(VirtioCcwDevice *dev, Error **errp) > } > } > > -static int virtio_ccw_exit(VirtioCcwDevice *dev) > +static void virtio_ccw_exit(VirtioCcwDevice *dev) > { > CcwDevice *ccw_dev = CCW_DEVICE(dev); > SubchDev *sch = ccw_dev->sch; > @@ -735,7 +735,6 @@ static int virtio_ccw_exit(VirtioCcwDevice *dev) > release_indicator(&dev->routes.adapter, dev->indicators); > dev->indicators = NULL; > } > - return 0; > } > > static void virtio_ccw_net_realize(VirtioCcwDevice *ccw_dev, Error **errp) > @@ -1621,7 +1620,8 @@ static int virtio_ccw_busdev_exit(DeviceState *dev) > VirtioCcwDevice *_dev = (VirtioCcwDevice *)dev; > VirtIOCCWDeviceClass *_info = VIRTIO_CCW_DEVICE_GET_CLASS(dev); > > - return _info->exit(_dev); > + _info->exit(_dev); > + return 0; /* TODO workaround, should remove once converted to unrealize */ I find that comment a bit confusing - just omit it? > } > > static void virtio_ccw_busdev_unplug(HotplugHandler *hotplug_dev, > diff --git a/hw/s390x/virtio-ccw.h b/hw/s390x/virtio-ccw.h > index 41d4010..ce8baa3 100644 > --- a/hw/s390x/virtio-ccw.h > +++ b/hw/s390x/virtio-ccw.h > @@ -74,7 +74,7 @@ typedef struct VirtioCcwDevice VirtioCcwDevice; > typedef struct VirtIOCCWDeviceClass { > CCWDeviceClass parent_class; > void (*realize)(VirtioCcwDevice *dev, Error **errp); > - int (*exit)(VirtioCcwDevice *dev); > + void (*exit)(VirtioCcwDevice *dev); > } VirtIOCCWDeviceClass; > > /* Performance improves when virtqueue kick processing is decoupled from the
diff --git a/hw/s390x/event-facility.c b/hw/s390x/event-facility.c index 34b2faf..f7c509c 100644 --- a/hw/s390x/event-facility.c +++ b/hw/s390x/event-facility.c @@ -413,11 +413,7 @@ static void event_unrealize(DeviceState *qdev, Error **errp) SCLPEvent *event = SCLP_EVENT(qdev); SCLPEventClass *child = SCLP_EVENT_GET_CLASS(event); if (child->exit) { - int rc = child->exit(event); - if (rc < 0) { - error_setg(errp, "SCLP event exit failed."); - return; - } + child->exit(event); } } diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 00b3bde..0dbd3ee 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -722,7 +722,7 @@ static void virtio_ccw_device_realize(VirtioCcwDevice *dev, Error **errp) } } -static int virtio_ccw_exit(VirtioCcwDevice *dev) +static void virtio_ccw_exit(VirtioCcwDevice *dev) { CcwDevice *ccw_dev = CCW_DEVICE(dev); SubchDev *sch = ccw_dev->sch; @@ -735,7 +735,6 @@ static int virtio_ccw_exit(VirtioCcwDevice *dev) release_indicator(&dev->routes.adapter, dev->indicators); dev->indicators = NULL; } - return 0; } static void virtio_ccw_net_realize(VirtioCcwDevice *ccw_dev, Error **errp) @@ -1621,7 +1620,8 @@ static int virtio_ccw_busdev_exit(DeviceState *dev) VirtioCcwDevice *_dev = (VirtioCcwDevice *)dev; VirtIOCCWDeviceClass *_info = VIRTIO_CCW_DEVICE_GET_CLASS(dev); - return _info->exit(_dev); + _info->exit(_dev); + return 0; /* TODO workaround, should remove once converted to unrealize */ } static void virtio_ccw_busdev_unplug(HotplugHandler *hotplug_dev, diff --git a/hw/s390x/virtio-ccw.h b/hw/s390x/virtio-ccw.h index 41d4010..ce8baa3 100644 --- a/hw/s390x/virtio-ccw.h +++ b/hw/s390x/virtio-ccw.h @@ -74,7 +74,7 @@ typedef struct VirtioCcwDevice VirtioCcwDevice; typedef struct VirtIOCCWDeviceClass { CCWDeviceClass parent_class; void (*realize)(VirtioCcwDevice *dev, Error **errp); - int (*exit)(VirtioCcwDevice *dev); + void (*exit)(VirtioCcwDevice *dev); } VirtIOCCWDeviceClass; /* Performance improves when virtqueue kick processing is decoupled from the
Note that only the virtio_ccw_exit, which is the exit function of VirtIOCCWDeviceClass, is modified to return void in this patch. 'virtio_ccw_busdev_exit' belongs to DeviceClass so it remains unchanged for the moment to give a split-out patch, because modifying it would involve some other folders like hw/audio. Signed-off-by: Zihan Yang <tgnyang@gmail.com> --- hw/s390x/event-facility.c | 6 +----- hw/s390x/virtio-ccw.c | 6 +++--- hw/s390x/virtio-ccw.h | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-)