[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [V6 PATCH 1/4] net: announce self after vm start
From: |
Jason Wang |
Subject: |
[Qemu-devel] [V6 PATCH 1/4] net: announce self after vm start |
Date: |
Wed, 28 Mar 2012 13:40:12 +0800 |
User-agent: |
StGit/0.16-1-g60c4 |
qemu_announce_self() were moved to vm_start(). This is because we may
want to let guest to send the gratuitous packets. A global variable
need_announce were introduced to record the pending announcement, and
vm_start() would send gratuitous packet depends on this value.
Signed-off-by: Jason Wang <address@hidden>
---
migration.c | 2 +-
migration.h | 2 ++
vl.c | 5 +++++
3 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/migration.c b/migration.c
index 00fa1e3..861cce9 100644
--- a/migration.c
+++ b/migration.c
@@ -88,7 +88,7 @@ void process_incoming_migration(QEMUFile *f)
fprintf(stderr, "load of migration failed\n");
exit(0);
}
- qemu_announce_self();
+ need_announce = true;
DPRINTF("successfully loaded vm state\n");
/* Make sure all file formats flush their mutable metadata */
diff --git a/migration.h b/migration.h
index 372b066..0a31463 100644
--- a/migration.h
+++ b/migration.h
@@ -95,4 +95,6 @@ void migrate_add_blocker(Error *reason);
*/
void migrate_del_blocker(Error *reason);
+extern bool need_announce;
+
#endif
diff --git a/vl.c b/vl.c
index 65f11f2..05ebf57 100644
--- a/vl.c
+++ b/vl.c
@@ -231,6 +231,7 @@ int boot_menu;
uint8_t *boot_splash_filedata;
int boot_splash_filedata_size;
uint8_t qemu_extra_params_fw[2];
+bool need_announce = false;
typedef struct FWBootEntry FWBootEntry;
@@ -1266,6 +1267,10 @@ void vm_start(void)
vm_state_notify(1, RUN_STATE_RUNNING);
resume_all_vcpus();
monitor_protocol_event(QEVENT_RESUME, NULL);
+ if (need_announce) {
+ need_announce = false;
+ qemu_announce_self();
+ }
}
}