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 <quint...@redhat.com>
Reviewed-by: Stefan Berger <stef...@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);

Reply via email to