aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/process.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2023-03-25 22:29:03 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2023-04-11 23:13:33 +1000
commitd195ce4695ca1061993424e2d6c8995e5fc81606 (patch)
tree980e31fa5e29ce9c3ea8157bbb1a21fd65080a34 /arch/powerpc/kernel/process.c
parentb504b6aade0403eaffa9ce51b8207d710705beaf (diff)
downloadlinux-d195ce4695ca1061993424e2d6c8995e5fc81606.tar.gz
powerpc: copy_thread don't set _TIF_RESTOREALL
In the kernel user thread path, don't set _TIF_RESTOREALL because the thread is required to call kernel_execve() before it returns, which will set _TIF_RESTOREALL if necessary via start_thread(). Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/20230325122904.2375060-8-npiggin@gmail.com
Diffstat (limited to 'arch/powerpc/kernel/process.c')
-rw-r--r--arch/powerpc/kernel/process.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 14fe4702a098b..2d90f39581fa1 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1745,7 +1745,6 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)
extern void start_kernel_thread(void);
void (*f)(void);
unsigned long sp = (unsigned long)task_stack_page(p) + THREAD_SIZE;
- struct thread_info *ti = task_thread_info(p);
#ifdef CONFIG_HAVE_HW_BREAKPOINT
int i;
#endif
@@ -1784,7 +1783,6 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)
#ifdef CONFIG_PPC64
childregs->softe = IRQS_ENABLED;
#endif
- ti->flags |= _TIF_RESTOREALL;
f = ret_from_kernel_user_thread;
} else {
struct pt_regs *regs = current_pt_regs();