On 7/20/2021 6:23 PM, Markus Armbruster wrote:
> When migrate_add_blocker(blocker, &errp) is followed by
> error_propagate(errp, err), we can often just as well do
> migrate_add_blocker(..., errp). This is the case in
> vfio_migration_probe().
>
> Prior art: commit 386f6c07d2 "error: Avoid error_propagate() after
> migrate_add_blocker()".
>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> hw/vfio/migration.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
> index 82f654afb6..ff6b45de6b 100644
> --- a/hw/vfio/migration.c
> +++ b/hw/vfio/migration.c
> @@ -858,7 +858,6 @@ int vfio_migration_probe(VFIODevice *vbasedev, Error **errp)
> {
> VFIOContainer *container = vbasedev->group->container;
> struct vfio_region_info *info = NULL;
> - Error *local_err = NULL;
> int ret = -ENOTSUP;
>
> if (!vbasedev->enable_migration || !container->dirty_pages_supported) {
> @@ -885,9 +884,8 @@ add_blocker:
> "VFIO device doesn't support migration");
> g_free(info);
>
> - ret = migrate_add_blocker(vbasedev->migration_blocker, &local_err);
> - if (local_err) {
> - error_propagate(errp, local_err);
> + ret = migrate_add_blocker(vbasedev->migration_blocker, errp);
> + if (ret < 0) {
> error_free(vbasedev->migration_blocker);
> vbasedev->migration_blocker = NULL;
> }
>
Reviewed by: Kirti Wankhede <kwankhede@nvidia.com>