* Scott Cheloha (chel...@linux.vnet.ibm.com) wrote:
> Create a function to abstract common logic needed when removing a
> SaveStateEntry element from the savevm_state.handlers queue.
>
> For now we just remove the element. Soon it will involve additional
> cleanup.
>
> Signed-off-by: Scott Cheloha
Reviewed-by: Dr. David Alan Gilbert
> ---
> migration/savevm.c | 9 +++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/migration/savevm.c b/migration/savevm.c
> index 8d95e261f6..b2e3b7222a 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -725,6 +725,11 @@ static void savevm_state_handler_insert(SaveStateEntry
> *nse)
> }
> }
>
> +static void savevm_state_handler_remove(SaveStateEntry *se)
> +{
> +QTAILQ_REMOVE(_state.handlers, se, entry);
> +}
> +
> /* TODO: Individual devices generally have very little idea about the rest
> of the system, so instance_id should be removed/replaced.
> Meanwhile pass -1 as instance_id if you do not already have a clearly
> @@ -777,7 +782,7 @@ void unregister_savevm(DeviceState *dev, const char
> *idstr, void *opaque)
>
> QTAILQ_FOREACH_SAFE(se, _state.handlers, entry, new_se) {
> if (strcmp(se->idstr, id) == 0 && se->opaque == opaque) {
> -QTAILQ_REMOVE(_state.handlers, se, entry);
> +savevm_state_handler_remove(se);
> g_free(se->compat);
> g_free(se);
> }
> @@ -841,7 +846,7 @@ void vmstate_unregister(DeviceState *dev, const
> VMStateDescription *vmsd,
>
> QTAILQ_FOREACH_SAFE(se, _state.handlers, entry, new_se) {
> if (se->vmsd == vmsd && se->opaque == opaque) {
> -QTAILQ_REMOVE(_state.handlers, se, entry);
> +savevm_state_handler_remove(se);
> g_free(se->compat);
> g_free(se);
> }
> --
> 2.23.0
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK