yank: Unregister function when using TLS migration
After yank feature was introduced in migration, whenever migration is started using TLS, the following error happens in both source and destination hosts:
(qemu) qemu-kvm: ../util/yank.c:107: yank_unregister_instance: Assertion `QLIST_EMPTY(&entry->yankfns)' failed.
This happens because of a missing yank_unregister_function() when using qio-channel-tls.
Fix this by also allowing TYPE_QIO_CHANNEL_TLS object type to perform yank_unregister_function() in channel_close() and multifd_load_cleanup().
Also, inside migration_channel_connect() and migration_channel_process_incoming() move yank_register_function() so it only runs once on a TLS migration.
Fixes: b5eea99e ("migration: Add yank feature", 2021-01-13)
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1972462
Signed-off-by: Leonardo Bras leobras.c@gmail.com
Reviewed-by: Lukas Straub lukasstraub2@web.de
Reviewed-by: Peter Xu peterx@redhat.com
Message-Id: 20210601054030.1153249-1-leobras.c@gmail.com
Signed-off-by: Dr. David Alan Gilbert dgilbert@redhat.com (cherry picked from commit 7de2e856) Signed-off-by: Leonardo Bras leobras@redhat.com