Messages in this thread | | | Date | Mon, 14 Feb 2022 12:39:05 +0100 | From | Sebastian Andrzej Siewior <> | Subject | Re: [PATCH 2/8] kernel/fork: Duplicate task_struct before stack allocation. |
| |
On 2022-02-11 15:42:38 [-0800], Andy Lutomirski wrote: > On 1/25/22 07:26, Sebastian Andrzej Siewior wrote: > > alloc_thread_stack_node() already populates the task_struct::stack > > member except on IA64. The stack pointer is saved and populated again > > because IA64 needs it and arch_dup_task_struct() overwrites it. > > I understand the problem, I think. > > > > > Allocate thread's stack after task_struct has been duplicated as a > > preparation. > > > > But I don't understand this. How does this patch relate to the problem?
So I duplicate the task-struct, assign the stack pointer in alloc_thread_stack_node() with no need to update the stack pointer later. Otherwise arch_dup_task_struct() would reset the pointer.
> Also, you appear to be missing a change to the free_stack and free_tsk code > at the end of dup_task_struct().
It looks right. What am I missing?
Sebastian
| |