From e46a9f6bfc65a2ce1996972a00df6e14cb64f517 Mon Sep 17 00:00:00 2001 From: Andrey Vagin Date: Wed, 17 Sep 2014 19:12:02 +0400 Subject: [PATCH] parasite: send PARASITE_CMD_FINI before resuming the target process The control socket has enough buffer for one command and the target process will not wait a new command, so we will avoid extra context switches. Signed-off-by: Andrey Vagin Signed-off-by: Pavel Emelyanov --- parasite-syscall.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/parasite-syscall.c b/parasite-syscall.c index c9115c87d..6ffe64732 100644 --- a/parasite-syscall.c +++ b/parasite-syscall.c @@ -863,17 +863,17 @@ static int parasite_fini_seized(struct parasite_ctl *ctl) return -1; } + ret = __parasite_execute_daemon(PARASITE_CMD_FINI, ctl); + close_safe(&ctl->tsock); + if (ret) + return -1; + ret = ptrace(PTRACE_SYSCALL, pid, NULL, NULL); if (ret) { pr_perror("ptrace"); return -1; } - ret = __parasite_execute_daemon(PARASITE_CMD_FINI, ctl); - close_safe(&ctl->tsock); - if (ret) - return -1; - if (parasite_stop_on_syscall(1, __NR_rt_sigreturn)) return -1;