From 9f50c5dc3a9ff1c09ed362601b16e09baa314b42 Mon Sep 17 00:00:00 2001 From: NAKAMURA Gou Date: Tue, 29 Sep 2015 19:53:40 +0900 Subject: [PATCH] mcexec_wait_syscall: handle request even if signaled (reworked) --- executer/kernel/control.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executer/kernel/control.c b/executer/kernel/control.c index df370479..213ed097 100644 --- a/executer/kernel/control.c +++ b/executer/kernel/control.c @@ -419,10 +419,10 @@ retry_alloc: init_waitqueue_head(&wqhln->wq_syscall); list_add_tail(&wqhln->list, &c->wq_list); } - ihk_ikc_spinlock_unlock(&c->wq_list_lock, flags); wqhln->req = 1; wake_up(&wqhln->wq_syscall); + ihk_ikc_spinlock_unlock(&c->wq_list_lock, flags); return 0; } @@ -497,7 +497,7 @@ retry_alloc: irqflags = ihk_ikc_spinlock_lock(&c->wq_list_lock); list_del(&wqhln->list); ihk_ikc_spinlock_unlock(&c->wq_list_lock, irqflags); - if (ret) { + if (ret && !wqhln->req) { kfree(wqhln); return -EINTR; }