]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: carefully send and handle pause/resume ipc
authorLai Jiangshan <laijs@cn.fujitsu.com>
Tue, 20 Dec 2011 09:08:56 +0000 (17:08 +0800)
committerPekka Enberg <penberg@kernel.org>
Wed, 21 Dec 2011 20:28:09 +0000 (22:28 +0200)
Remove struct pause_cmd/resume_cmd and use kvm_ipc__send().

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/builtin-pause.c
tools/kvm/builtin-resume.c
tools/kvm/builtin-run.c

index eb89ff7e9abbe13974c4c29ce4831af4a2feb167..ee5a5b844a78a751718768e24db41b87677ec0db 100644 (file)
@@ -9,11 +9,6 @@
 #include <string.h>
 #include <signal.h>
 
-struct pause_cmd {
-       u32 type;
-       u32 len;
-};
-
 static bool all;
 static const char *instance_name;
 
@@ -46,14 +41,7 @@ void kvm_pause_help(void)
 
 static int do_pause(const char *name, int sock)
 {
-       struct pause_cmd cmd = {KVM_IPC_PAUSE, 0};
-       int r;
-
-       r = write(sock, &cmd, sizeof(cmd));
-       if (r < 0)
-               return r;
-
-       return 0;
+       return kvm_ipc__send(sock, KVM_IPC_PAUSE);
 }
 
 int kvm_cmd_pause(int argc, const char **argv, const char *prefix)
index 33ccc2bae89030005b2745b772180ffb7c7b8b0a..9c47183c33c62b925682b42f08895446c57af05d 100644 (file)
@@ -9,11 +9,6 @@
 #include <string.h>
 #include <signal.h>
 
-struct resume_cmd {
-       u32 type;
-       u32 len;
-};
-
 static bool all;
 static const char *instance_name;
 
@@ -46,14 +41,7 @@ void kvm_resume_help(void)
 
 static int do_resume(const char *name, int sock)
 {
-       struct resume_cmd cmd = {KVM_IPC_RESUME, 0};
-       int r;
-
-       r = write(sock, &cmd, sizeof(cmd));
-       if (r < 0)
-               return r;
-
-       return 0;
+       return kvm_ipc__send(sock, KVM_IPC_RESUME);
 }
 
 int kvm_cmd_resume(int argc, const char **argv, const char *prefix)
index 3e287706bb90a542d59509c049e670915ee3f8c8..a94fdbcebb7c040247f02c26070b3758f04753e4 100644 (file)
@@ -507,12 +507,17 @@ static int is_paused;
 
 static void handle_pause(int fd, u32 type, u32 len, u8 *msg)
 {
+       if (WARN_ON(len))
+               return;
+
        if (type == KVM_IPC_RESUME && is_paused)
                kvm__continue();
        else if (type == KVM_IPC_PAUSE && !is_paused)
                kvm__pause();
-       else
+       else {
+               WARN_ON(1);
                return;
+       }
 
        is_paused = !is_paused;
        pr_info("Guest %s\n", is_paused ? "paused" : "resumed");