vfio/migration: Return bool type for vfio_migration_realize()

Make vfio_migration_realize() adhere to the convention of other realize()
callbacks(like qdev_realize) by returning bool instead of int.

Suggested-by: Cédric Le Goater <clg@redhat.com>
Suggested-by: Joao Martins <joao.m.martins@oracle.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Joao Martins <joao.m.martins@oracle.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
Zhenzhong Duan 2023-07-03 15:15:10 +08:00 committed by Cédric Le Goater
parent 0520d63c77
commit d4a2af747d
3 changed files with 12 additions and 8 deletions

View file

@ -846,7 +846,12 @@ void vfio_reset_bytes_transferred(void)
bytes_transferred = 0; bytes_transferred = 0;
} }
int vfio_migration_realize(VFIODevice *vbasedev, Error **errp) /*
* Return true when either migration initialized or blocker registered.
* Currently only return false when adding blocker fails which will
* de-register vfio device.
*/
bool vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
{ {
Error *err = NULL; Error *err = NULL;
int ret; int ret;
@ -854,7 +859,7 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
if (vbasedev->enable_migration == ON_OFF_AUTO_OFF) { if (vbasedev->enable_migration == ON_OFF_AUTO_OFF) {
error_setg(&err, "%s: Migration is disabled for VFIO device", error_setg(&err, "%s: Migration is disabled for VFIO device",
vbasedev->name); vbasedev->name);
return vfio_block_migration(vbasedev, err, errp); return !vfio_block_migration(vbasedev, err, errp);
} }
ret = vfio_migration_init(vbasedev); ret = vfio_migration_init(vbasedev);
@ -869,7 +874,7 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
vbasedev->name, ret, strerror(-ret)); vbasedev->name, ret, strerror(-ret));
} }
return vfio_block_migration(vbasedev, err, errp); return !vfio_block_migration(vbasedev, err, errp);
} }
if (!vbasedev->dirty_pages_supported) { if (!vbasedev->dirty_pages_supported) {
@ -896,7 +901,7 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
} }
trace_vfio_migration_realize(vbasedev->name); trace_vfio_migration_realize(vbasedev->name);
return 0; return true;
add_blocker: add_blocker:
ret = vfio_block_migration(vbasedev, err, errp); ret = vfio_block_migration(vbasedev, err, errp);
@ -904,7 +909,7 @@ out_deinit:
if (ret) { if (ret) {
vfio_migration_deinit(vbasedev); vfio_migration_deinit(vbasedev);
} }
return ret; return !ret;
} }
void vfio_migration_exit(VFIODevice *vbasedev) void vfio_migration_exit(VFIODevice *vbasedev)

View file

@ -3207,8 +3207,7 @@ static void vfio_realize(PCIDevice *pdev, Error **errp)
} }
if (!pdev->failover_pair_id) { if (!pdev->failover_pair_id) {
ret = vfio_migration_realize(vbasedev, errp); if (!vfio_migration_realize(vbasedev, errp)) {
if (ret) {
goto out_deregister; goto out_deregister;
} }
} }

View file

@ -252,7 +252,7 @@ int vfio_spapr_create_window(VFIOContainer *container,
int vfio_spapr_remove_window(VFIOContainer *container, int vfio_spapr_remove_window(VFIOContainer *container,
hwaddr offset_within_address_space); hwaddr offset_within_address_space);
int vfio_migration_realize(VFIODevice *vbasedev, Error **errp); bool vfio_migration_realize(VFIODevice *vbasedev, Error **errp);
void vfio_migration_exit(VFIODevice *vbasedev); void vfio_migration_exit(VFIODevice *vbasedev);
#endif /* HW_VFIO_VFIO_COMMON_H */ #endif /* HW_VFIO_VFIO_COMMON_H */