sigsuspend: Make sure receive correct sigevent from do_kill

Change-Id: Ife9cf36a81f353e0575f6802f1e56f7dd4cb0425
Fujitsu: POSTK_DEBUG_TEMP_FIX_33
Refs: #1350
This commit is contained in:
Ken Sato
2019-08-23 15:24:35 +09:00
committed by Masamichi Takagi
parent 18412616e1
commit bc06d68d84
7 changed files with 228 additions and 10 deletions

View File

@@ -4373,9 +4373,11 @@ SYSCALL_DECLARE(rt_sigtimedwait)
cpu_pause();
}
#ifdef POSTK_DEBUG_TEMP_FIX_33 /* sigevent missed fix */
/*
* Sending signal here is detected
* by the following list check
*/
thread->sigevent = 0;
#endif /* POSTK_DEBUG_TEMP_FIX_33 */
thread->status = PS_RUNNING;
lock = &thread->sigcommon->lock;
@@ -4434,9 +4436,6 @@ SYSCALL_DECLARE(rt_sigtimedwait)
return -EINTR;
}
mcs_rwlock_writer_unlock(lock, &mcs_rw_node);
#ifndef POSTK_DEBUG_TEMP_FIX_33 /* sigevent missed fix */
thread->sigevent = 0;
#endif /* !POSTK_DEBUG_TEMP_FIX_33 */
}
if(info){
@@ -4511,9 +4510,12 @@ do_sigsuspend(struct thread *thread, const sigset_t *set)
cpu_pause();
}
}
#ifdef POSTK_DEBUG_TEMP_FIX_33 /* sigevent missed fix */
/*
* Sending signal here is detected
* by the following list check
*/
thread->sigevent = 0;
#endif /* POSTK_DEBUG_TEMP_FIX_33 */
thread->status = PS_RUNNING;
lock = &thread->sigcommon->lock;
@@ -4537,9 +4539,6 @@ do_sigsuspend(struct thread *thread, const sigset_t *set)
}
if(&pending->list == head){
mcs_rwlock_writer_unlock(lock, &mcs_rw_node);
#ifndef POSTK_DEBUG_TEMP_FIX_33 /* sigevent missed fix */
thread->sigevent = 0;
#endif /* POSTK_DEBUG_TEMP_FIX_33 */
continue;
}