From 204f9750a8aad9fc8f6205e10d927a847bd13bfd Mon Sep 17 00:00:00 2001 From: "yuhong.tao@intel.com" Date: Tue, 8 Jan 2019 15:22:14 +0000 Subject: [PATCH] tools: acrnd: Fix launch UOS by timer list without fork() When acrnd_vm_timer_func() launch UOS, it need fork() and run, so that do not block the main process. Tracked-On: #2716 Signed-off-by: Tao Yuhong Acked-by: Yan, Like --- tools/acrn-manager/acrnd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/acrn-manager/acrnd.c b/tools/acrn-manager/acrnd.c index c8cbf6f04..b81420b39 100644 --- a/tools/acrn-manager/acrnd.c +++ b/tools/acrn-manager/acrnd.c @@ -122,6 +122,7 @@ unsigned get_sos_wakeup_reason(void); void acrnd_vm_timer_func(struct work_arg *arg) { struct vmmngr_struct *vm; + pid_t pid; if (!arg) { printf("%s: No work argument configured\n", __func__); @@ -137,7 +138,9 @@ void acrnd_vm_timer_func(struct work_arg *arg) switch (vm->state) { case VM_CREATED: - acrnd_run_vm(arg->name); + pid = fork(); + if (!pid) + acrnd_run_vm(vm->name); break; case VM_SUSPENDED: resume_vm(arg->name, CBC_WK_RSN_RTC);