From d7199ccc3be5238977f61773d10abf8a3687f676 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: #2306 Signed-off-by: Tao Yuhong Signed-off-by: Tao Yuhong --- 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 ffc7af8ef..239b4c3de 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) { pdebug(); @@ -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);