On Tue, 18 Mar 2025 at 15:29, Cédric Le Goater <c...@redhat.com> wrote: > This routine is related to VFIO migration. It belongs to "migration.c". > While at it, rename it to better reflect the namespace it belongs to. > > Signed-off-by: Cédric Le Goater <c...@redhat.com> > --- > hw/vfio/migration.h | 1 + > hw/vfio/dirty-tracking.c | 19 +++++-------------- > hw/vfio/migration.c | 7 +++++++ > 3 files changed, 13 insertions(+), 14 deletions(-) > > diff --git a/hw/vfio/migration.h b/hw/vfio/migration.h > index > 7ad2141d06a7c97f034db908f9ce19fd06f415b9..9b57d7dc1a6c6143c19e1ee85807d036b1363624 > 100644 > --- a/hw/vfio/migration.h > +++ b/hw/vfio/migration.h > @@ -68,5 +68,6 @@ int vfio_migration_set_state(VFIODevice *vbasedev, > enum vfio_device_mig_state recover_state, > Error **errp); > #endif > +void vfio_migration_set_error(int ret); > > #endif /* HW_VFIO_MIGRATION_H */ > diff --git a/hw/vfio/dirty-tracking.c b/hw/vfio/dirty-tracking.c > index > 441f9d9a08c06a88dda44ef143dcee5f0a89a900..447e09ed84993e3fbe1ed9b27a8269a9f0f46339 > 100644 > --- a/hw/vfio/dirty-tracking.c > +++ b/hw/vfio/dirty-tracking.c > @@ -35,8 +35,6 @@ > #include "system/runstate.h" > #include "trace.h" > #include "qapi/error.h" > -#include "migration/misc.h" > -#include "migration/qemu-file.h" > #include "system/tcg.h" > #include "system/tpm.h" > #include "migration.h" > @@ -47,13 +45,6 @@ > * Device state interfaces > */ > > -static void vfio_set_migration_error(int ret) > -{ > - if (migration_is_running()) { > - migration_file_set_error(ret, NULL); > - } > -} > - > static bool vfio_devices_all_device_dirty_tracking_started( > const VFIOContainerBase *bcontainer) > { > @@ -175,7 +166,7 @@ static void vfio_iommu_map_notify(IOMMUNotifier *n, > IOMMUTLBEntry *iotlb) > if (iotlb->target_as != &address_space_memory) { > error_report("Wrong target AS \"%s\", only system memory is allowed", > iotlb->target_as->name ? iotlb->target_as->name : > "none"); > - vfio_set_migration_error(-EINVAL); > + vfio_migration_set_error(-EINVAL); > return; > } > > @@ -212,7 +203,7 @@ static void vfio_iommu_map_notify(IOMMUNotifier *n, > IOMMUTLBEntry *iotlb) > "0x%"HWADDR_PRIx") = %d (%s)", > bcontainer, iova, > iotlb->addr_mask + 1, ret, strerror(-ret)); > - vfio_set_migration_error(ret); > + vfio_migration_set_error(ret); > } > } > out: > @@ -995,7 +986,7 @@ static void vfio_listener_log_global_stop(MemoryListener > *listener) > error_prepend(&local_err, > "vfio: Could not stop dirty page tracking - "); > error_report_err(local_err); > - vfio_set_migration_error(ret); > + vfio_migration_set_error(ret); > } > } > > @@ -1137,7 +1128,7 @@ out_unlock: > > out: > if (ret) { > - vfio_set_migration_error(ret); > + vfio_migration_set_error(ret); > } > } > > @@ -1271,7 +1262,7 @@ static void vfio_listener_log_sync(MemoryListener > *listener, > ret = vfio_sync_dirty_bitmap(bcontainer, section, &local_err); > if (ret) { > error_report_err(local_err); > - vfio_set_migration_error(ret); > + vfio_migration_set_error(ret); > } > } > } > diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c > index > 46c4cfecce25ba1146a1d8f2de0d7c51425afe8e..6fd825e435bde96d1008ec03dfaba25db3b616fc > 100644 > --- a/hw/vfio/migration.c > +++ b/hw/vfio/migration.c > @@ -1239,3 +1239,10 @@ bool vfio_device_state_is_precopy(VFIODevice *vbasedev) > return migration->device_state == VFIO_DEVICE_STATE_PRE_COPY || > migration->device_state == VFIO_DEVICE_STATE_PRE_COPY_P2P; > } > + > +void vfio_migration_set_error(int ret) > +{ > + if (migration_is_running()) { > + migration_file_set_error(ret, NULL); > + } > +} > --
* The change looks okay. But with the 'Error *err = NULL' parameter, the error (ret) is also not passed on. Could we call migration_file_set_error(ret, errp), instead of defining 'vfio_migration_set_error'? Because currently it accepts only one 'ret' parameter, later adding *errp to it would entail changing all call sites. Thank you. --- - Prasad