syscall: the signal received during system call processing is not processed.

Refs: #1176
Fujitsu: POSTK_DEBUG_TEMP_FIX_56
Change-Id: I410160ccbcef3ef49a0e37611a608bc87c97e63b
This commit is contained in:
Tomoki Shirasawa
2018-09-07 14:54:45 +09:00
committed by Masamichi Takagi
parent e4da71010c
commit 5e760db417
10 changed files with 485 additions and 22 deletions

View File

@@ -3150,11 +3150,11 @@ void spin_sleep_or_schedule(void)
}
ihk_mc_spinlock_unlock(&thread->spin_sleep_lock, irqstate);
#ifdef POSTK_DEBUG_TEMP_FIX_56 /* in futex_wait() signal handring fix. */
if (hassigpending(cpu_local_var(current))) {
if ((!list_empty(&thread->sigpending) ||
!list_empty(&thread->sigcommon->sigpending)) &&
hassigpending(thread)) {
woken = 1;
}
#endif /* POSTK_DEBUG_TEMP_FIX_56 */
if (woken) {
return;