when wakeup for syscall and recieve signal occur in the same timing, a program is freezed.
This commit is contained in:
@@ -407,6 +407,10 @@ retry_alloc:
|
|||||||
|
|
||||||
ret = wait_event_interruptible(wqhln->wq_syscall, wqhln->req);
|
ret = wait_event_interruptible(wqhln->wq_syscall, wqhln->req);
|
||||||
|
|
||||||
|
if (ret) {
|
||||||
|
return -EINTR;
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove per-process wait queue head */
|
/* Remove per-process wait queue head */
|
||||||
irqflags = ihk_ikc_spinlock_lock(&c->wq_list_lock);
|
irqflags = ihk_ikc_spinlock_lock(&c->wq_list_lock);
|
||||||
list_del(&wqhln->list);
|
list_del(&wqhln->list);
|
||||||
@@ -425,10 +429,6 @@ retry_alloc:
|
|||||||
return -EINTR;
|
return -EINTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret) {
|
|
||||||
return -EINTR;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
mb();
|
mb();
|
||||||
if (!c->param.request_va->valid) {
|
if (!c->param.request_va->valid) {
|
||||||
|
|||||||
Reference in New Issue
Block a user