kernel_liteos_a/kernel/base/ipc
YOUR_NAME 35a2f3af33 fix: init进程收到子进程退出信号后,调用fork重新拉起进程,会导致系统卡死
问题原因:init进程执行信号时,线程栈底预留了部分空间给信号上下文使用,
从而导致处理信号时线程栈底比线程控制块里面记录的大,这样在fork的过程中内核
从init线程栈底copy线程上下文给新进程时,copy的不是实际运行的栈底,以致于
新进程的线程上下文不对,在实际运行时跑飞,引发系统卡死。
解决方案:在fork过程copy线程上下文时,判断是否预留了信号上下文空间,如果预留
了,则copy的栈底要基于预留后的栈底去copy线程上下文。

close: #I41HOY

Signed-off-by: zff <zhangfanfan2@huawei.com>
Change-Id: I61cb05183c78919730e3a68c1c85b72fa1decd16
2021-07-20 21:11:12 +08:00
..
los_event.c refactor: 对LiteOS_a内核中menuconfig开关的宏使用#ifdef/#ifndef做预编译处理 2021-07-01 09:08:18 +08:00
los_futex.c fix : futex requeue机制中,头节点的queueList 为NULL, 导致系统异常 2021-07-14 09:30:49 +08:00
los_ipcdebug.c remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
los_mux.c refactor: 对LiteOS_a内核中menuconfig开关的宏使用#ifdef/#ifndef做预编译处理 2021-07-01 09:08:18 +08:00
los_queue.c refactor: 对LiteOS_a内核中menuconfig开关的宏使用#ifdef/#ifndef做预编译处理 2021-07-01 09:08:18 +08:00
los_queue_debug.c Remove redundant macro definition(OFFSET_OF_FIELD) 2021-05-19 11:20:09 +08:00
los_rwlock.c remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
los_sem.c refactor: 对LiteOS_a内核中menuconfig开关的宏使用#ifdef/#ifndef做预编译处理 2021-07-01 09:08:18 +08:00
los_sem_debug.c Remove redundant macro definition(OFFSET_OF_FIELD) 2021-05-19 11:20:09 +08:00
los_signal.c fix: init进程收到子进程退出信号后,调用fork重新拉起进程,会导致系统卡死 2021-07-20 21:11:12 +08:00