diff mbox series

[05/13] migration: Use VMSTATE_INSTANCE_ID_ANY for slirp

Message ID 20231019190831.20363-6-quintela@redhat.com (mailing list archive)
State New, archived
Headers show
Series migration: Check for duplicates on vmstate_register() | expand

Commit Message

Juan Quintela Oct. 19, 2023, 7:08 p.m. UTC
Each user network conection create a new slirp instance.  We register
more than one slirp instance for number 0.

qemu-system-x86_64: -netdev user,id=hs1: savevm_state_handler_insert: Detected duplicate SaveStateEntry: id=slirp, instance_id=0x0
Broken pipe
../../../../../mnt/code/qemu/full/tests/qtest/libqtest.c:195: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
Aborted (core dumped)

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 net/slirp.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Stefan Berger Oct. 19, 2023, 8:29 p.m. UTC | #1
On 10/19/23 15:08, Juan Quintela wrote:
> Each user network conection create a new slirp instance.  We register
> more than one slirp instance for number 0.
>
> qemu-system-x86_64: -netdev user,id=hs1: savevm_state_handler_insert: Detected duplicate SaveStateEntry: id=slirp, instance_id=0x0
> Broken pipe
> ../../../../../mnt/code/qemu/full/tests/qtest/libqtest.c:195: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
> Aborted (core dumped)
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
> ---
>   net/slirp.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/net/slirp.c b/net/slirp.c
> index c33b3e02e7..25b49c4526 100644
> --- a/net/slirp.c
> +++ b/net/slirp.c
> @@ -46,6 +46,7 @@
>   #include "qapi/qmp/qdict.h"
>   #include "util.h"
>   #include "migration/register.h"
> +#include "migration/vmstate.h"
>   #include "migration/qemu-file-types.h"
>
>   static int get_str_sep(char *buf, int buf_size, const char **pp, int sep)
> @@ -659,8 +660,8 @@ static int net_slirp_init(NetClientState *peer, const char *model,
>        * specific version?
>        */
>       g_assert(slirp_state_version() == 4);
> -    register_savevm_live("slirp", 0, slirp_state_version(),
> -                         &savevm_slirp_state, s->slirp);
> +    register_savevm_live("slirp", VMSTATE_INSTANCE_ID_ANY,
> +                         slirp_state_version(), &savevm_slirp_state, s->slirp);
>
>       s->poll_notifier.notify = net_slirp_poll_notify;
>       main_loop_poll_add_notifier(&s->poll_notifier);
diff mbox series

Patch

diff --git a/net/slirp.c b/net/slirp.c
index c33b3e02e7..25b49c4526 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -46,6 +46,7 @@ 
 #include "qapi/qmp/qdict.h"
 #include "util.h"
 #include "migration/register.h"
+#include "migration/vmstate.h"
 #include "migration/qemu-file-types.h"
 
 static int get_str_sep(char *buf, int buf_size, const char **pp, int sep)
@@ -659,8 +660,8 @@  static int net_slirp_init(NetClientState *peer, const char *model,
      * specific version?
      */
     g_assert(slirp_state_version() == 4);
-    register_savevm_live("slirp", 0, slirp_state_version(),
-                         &savevm_slirp_state, s->slirp);
+    register_savevm_live("slirp", VMSTATE_INSTANCE_ID_ANY,
+                         slirp_state_version(), &savevm_slirp_state, s->slirp);
 
     s->poll_notifier.notify = net_slirp_poll_notify;
     main_loop_poll_add_notifier(&s->poll_notifier);