Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
duanzhenzhong authored and legoater committed Jul 10, 2023
1 parent 0520d63 commit d4a2af7
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
15 changes: 10 additions & 5 deletions hw/vfio/migration.c
Expand Up @@ -846,15 +846,20 @@ void vfio_reset_bytes_transferred(void)
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;
int ret;

if (vbasedev->enable_migration == ON_OFF_AUTO_OFF) {
error_setg(&err, "%s: Migration is disabled for VFIO device",
vbasedev->name);
return vfio_block_migration(vbasedev, err, errp);
return !vfio_block_migration(vbasedev, err, errp);
}

ret = vfio_migration_init(vbasedev);
Expand All @@ -869,7 +874,7 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
vbasedev->name, ret, strerror(-ret));
}

return vfio_block_migration(vbasedev, err, errp);
return !vfio_block_migration(vbasedev, err, errp);
}

if (!vbasedev->dirty_pages_supported) {
Expand All @@ -896,15 +901,15 @@ int vfio_migration_realize(VFIODevice *vbasedev, Error **errp)
}

trace_vfio_migration_realize(vbasedev->name);
return 0;
return true;

add_blocker:
ret = vfio_block_migration(vbasedev, err, errp);
out_deinit:
if (ret) {
vfio_migration_deinit(vbasedev);
}
return ret;
return !ret;
}

void vfio_migration_exit(VFIODevice *vbasedev)
Expand Down
3 changes: 1 addition & 2 deletions hw/vfio/pci.c
Expand Up @@ -3207,8 +3207,7 @@ static void vfio_realize(PCIDevice *pdev, Error **errp)
}

if (!pdev->failover_pair_id) {
ret = vfio_migration_realize(vbasedev, errp);
if (ret) {
if (!vfio_migration_realize(vbasedev, errp)) {
goto out_deregister;
}
}
Expand Down
2 changes: 1 addition & 1 deletion include/hw/vfio/vfio-common.h
Expand Up @@ -252,7 +252,7 @@ int vfio_spapr_create_window(VFIOContainer *container,
int vfio_spapr_remove_window(VFIOContainer *container,
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);

#endif /* HW_VFIO_VFIO_COMMON_H */

0 comments on commit d4a2af7

Please sign in to comment.