From 17730617e1e4cd5719237d8d27c77bd658797ade Mon Sep 17 00:00:00 2001 From: Tomoki Shirasawa Date: Fri, 25 Jul 2014 10:54:30 +0900 Subject: [PATCH] when wakeup for syscall and recieve signal occur in the same timing, a program is freezed. --- executer/kernel/control.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/executer/kernel/control.c b/executer/kernel/control.c index 3a3bd6ae..e6c5fb92 100644 --- a/executer/kernel/control.c +++ b/executer/kernel/control.c @@ -407,6 +407,10 @@ retry_alloc: ret = wait_event_interruptible(wqhln->wq_syscall, wqhln->req); + if (ret) { + return -EINTR; + } + /* Remove per-process wait queue head */ irqflags = ihk_ikc_spinlock_lock(&c->wq_list_lock); list_del(&wqhln->list); @@ -425,10 +429,6 @@ retry_alloc: return -EINTR; } - if (ret) { - return -EINTR; - } - #if 1 mb(); if (!c->param.request_va->valid) {