vfio: Pass an error object to vfio_get_group

Pass an error object to prepare for migration to VFIO-PCI realize.

For the time being let's just simply report the error in
vfio platform's vfio_base_device_init(). A subsequent patch will
duly propagate the error up to vfio_platform_realize.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
Eric Auger 2016-10-17 10:57:59 -06:00 committed by Alex Williamson
parent 01905f58f1
commit 1b808d5be0
4 changed files with 22 additions and 18 deletions

View file

@ -552,6 +552,7 @@ static int vfio_base_device_init(VFIODevice *vbasedev)
ssize_t len;
struct stat st;
int groupid;
Error *err = NULL;
int ret;
/* @sysfsdev takes precedence over @host */
@ -592,10 +593,10 @@ static int vfio_base_device_init(VFIODevice *vbasedev)
trace_vfio_platform_base_device_init(vbasedev->name, groupid);
group = vfio_get_group(groupid, &address_space_memory);
group = vfio_get_group(groupid, &address_space_memory, &err);
if (!group) {
error_report("vfio: failed to get group %d", groupid);
return -ENOENT;
ret = -ENOENT;
goto error;
}
QLIST_FOREACH(vbasedev_iter, &group->device_list, next) {
@ -619,6 +620,10 @@ static int vfio_base_device_init(VFIODevice *vbasedev)
vfio_put_group(group);
}
error:
if (err) {
error_reportf_err(err, ERR_PREFIX, vbasedev->name);
}
return ret;
}